Repository: incubator-taverna-mobile Updated Branches: refs/heads/master c888831c5 -> 03b5b4cb1
move dashboardMainActivity to MVP UI package and remove useless code Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/de2e1746 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/de2e1746 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/de2e1746 Branch: refs/heads/master Commit: de2e17464cbd97fb9732cd11a47a771d3ce50054 Parents: c888831 Author: Sagar <[email protected]> Authored: Mon Oct 31 23:43:40 2016 +0530 Committer: Sagar <[email protected]> Committed: Mon Oct 31 23:43:40 2016 +0530 ---------------------------------------------------------------------- .../activities/DashboardMainActivity.java | 338 ------------------- .../mobile/ui/DashboardMainActivity.java | 241 +++++++++++++ 2 files changed, 241 insertions(+), 338 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/de2e1746/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java deleted file mode 100644 index bca3e04..0000000 --- a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java +++ /dev/null @@ -1,338 +0,0 @@ -package org.apache.taverna.mobile.activities; - -/** - * Apache Taverna Mobile - * Copyright 2015 The Apache Software Foundation - * - * This product includes software developed at - * The Apache Software Foundation (http://www.apache.org/). - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import android.app.Dialog; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.os.Environment; -import android.preference.PreferenceManager; -import android.support.design.widget.NavigationView; -import android.support.design.widget.Snackbar; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.view.GravityCompat; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.TableLayout; -import android.widget.Toast; - -import org.apache.taverna.mobile.R; -import org.apache.taverna.mobile.data.DataManager; -import org.apache.taverna.mobile.data.local.PreferencesHelper; -import org.apache.taverna.mobile.ui.anouncements.AnnouncementFragment; -import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment; -import org.apache.taverna.mobile.ui.licence.LicenceFragment; -import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowFragment; -import org.apache.taverna.mobile.ui.workflow.WorkflowFragment; -import org.apache.taverna.mobile.utils.ActivityUtils; - -import java.io.File; - -public class DashboardMainActivity extends AppCompatActivity { - - public static final String APP_DIRECTORY_NAME = "TavernaMobile"; - private final int SELECT_WORKFLOW = 10; - /** - * Used to store the last screen title. For use in {@link #restoreActionBar()}. - */ - private CharSequence mTitle = "Dashboard"; - private Dialog aboutDialog; - private DrawerLayout mDrawerLayout; - private DataManager dataManager; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_dashboard_main); - - NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); - if (navigationView != null) { - setupDrawerContent(navigationView); - } - - - mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - - setUpWorkflowDirectory(this); - aboutDialog = new Dialog(this); - - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - final ActionBar ab = getSupportActionBar(); - if (ab != null) { - ab.setHomeAsUpIndicator(R.drawable.ic_menu); - ab.setDisplayHomeAsUpEnabled(true); - } - - - /** - * Setting the Fragment in FrameLayout - */ - if (savedInstanceState == null) { - - FragmentManager fragmentManager = getSupportFragmentManager(); - Fragment fragment; - - fragment = new WorkflowFragment(); - fragmentManager.beginTransaction() - .replace(R.id.frame_container, fragment) - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) - .commit(); - } - dataManager = new DataManager(new PreferencesHelper(this)); - } - - - /** - * @param navigationView Design Support NavigationView OnClick Listener Event - */ - private void setupDrawerContent(final NavigationView navigationView) { - navigationView.setNavigationItemSelectedListener( - new NavigationView.OnNavigationItemSelectedListener() { - - @Override - public boolean onNavigationItemSelected(MenuItem menuItem) { - - - Fragment fragment; - - switch (menuItem.getItemId()) { - case R.id.nav_workflows: - - fragment = new WorkflowFragment(); - ActivityUtils - .addFragmentToActivity( - getSupportFragmentManager(), - fragment, - R.id.frame_container); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_my_workflows: - - fragment = new MyWorkflowFragment(); - ActivityUtils - .addFragmentToActivity( - getSupportFragmentManager(), - fragment, - R.id.frame_container); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_favourite_workflow: - - fragment = new FavouriteWorkflowsFragment(); - ActivityUtils - .addFragmentToActivity( - getSupportFragmentManager(), - fragment, - R.id.frame_container); - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_announcement: - - fragment = new AnnouncementFragment(); - ActivityUtils - .addFragmentToActivity( - getSupportFragmentManager(), - fragment, - R.id.frame_container); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - - case R.id.nav_usage: - - aboutDialog.setCanceledOnTouchOutside(true); - aboutDialog.setTitle("Usage"); - aboutDialog.setContentView(R.layout.usage_layout); - aboutDialog.show(); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_about: - - TableLayout about = (TableLayout) getLayoutInflater().inflate(R - .layout.about, navigationView, false); - - aboutDialog.setCanceledOnTouchOutside(true); - aboutDialog.setTitle("About Taverna Mobile"); - aboutDialog.setContentView(about); - aboutDialog.show(); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.os_licences: - - ActivityUtils - .addFragmentToActivity( - getSupportFragmentManager(), - LicenceFragment.newInstance(), - R.id.frame_container); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_settings: - - startActivity(new Intent(getApplicationContext(), - SettingsActivity.class)); - overridePendingTransition(android.R.anim.slide_in_left, android.R - .anim.slide_out_right); - - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - return true; - - case R.id.nav_logout: - - finish(); - menuItem.setChecked(true); - mDrawerLayout.closeDrawers(); - dataManager.getPreferencesHelper().setLoggedInFlag(false); - return true; - - } - return true; - } - }); - } - - - - - - - public void restoreActionBar() { - ActionBar actionBar = getSupportActionBar(); - //actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); - if (actionBar != null) { - actionBar.setDisplayShowTitleEnabled(true); - actionBar.setTitle(mTitle); - } - } - - private void setUpWorkflowDirectory(Context context) { - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); - if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { - File workflowDirectory = new File(Environment.getExternalStorageDirectory() + File - .separator + APP_DIRECTORY_NAME); - if (!workflowDirectory.exists()) { - boolean state = workflowDirectory.mkdirs(); - if (state) { - Toast.makeText(context, "Storage Ready", Toast.LENGTH_SHORT).show(); - sp.edit().putString(APP_DIRECTORY_NAME, workflowDirectory.getAbsolutePath()) - .apply(); - Toast.makeText(context, "Home dir: " + workflowDirectory.getAbsolutePath(), - Toast.LENGTH_LONG).show(); - } else { //directory can't be created either because of restricted access or lack - // of an external storage media. - //we assume the lack of secondary storage so we have to switch to internal - // storage - // File dir = new File(Environment.getExternalStoragePublicDirectory - // (Environment.)) - // Toast.makeText(context, "Storage Error. Directory not created", - // Toast.LENGTH_SHORT).show(); - final Snackbar snackbar = Snackbar.make( - mDrawerLayout, - "Storage error. No workflows can be saved.", - Snackbar.LENGTH_INDEFINITE); - snackbar.setAction("OK", new View.OnClickListener() { - @Override - public void onClick(View view) { - snackbar.dismiss(); - } - }); - - snackbar.show(); - } -// workflowDirectory.list(); - } else { - // Toast.makeText(context, "Directory exists. Home dir: "+workflowDirectory - // .getAbsolutePath(), Toast.LENGTH_LONG).show(); - sp.edit().putString(APP_DIRECTORY_NAME, workflowDirectory.getAbsolutePath()) - .apply(); - /*else { - File mainDir = new File(Environment.getExternalStorageDirectory() + File - .separator + APP_DIRECTORY_NAME); - if (mainDir.mkdirs()) - sp.edit().putString(APP_DIRECTORY_NAME, mainDir.getAbsolutePath()).commit(); - else - Toast.makeText(context, "Workflow home not created. Permission issues", Toast - .LENGTH_SHORT).show(); - }*/ - } - } else { //use internal memory to save the data - File home = context.getDir("Workflows", Context.MODE_PRIVATE); - sp.edit().putString(APP_DIRECTORY_NAME, home.getAbsolutePath()).apply(); - // Toast.makeText(context, "Home dir: "+home.getAbsolutePath(), Toast - // .LENGTH_LONG).show(); - } - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.dashboard_main, menu); - restoreActionBar(); - return true; - } - - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - mDrawerLayout.openDrawer(GravityCompat.START); - return true; - } - return super.onOptionsItemSelected(item); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/de2e1746/app/src/main/java/org/apache/taverna/mobile/ui/DashboardMainActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/DashboardMainActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardMainActivity.java new file mode 100644 index 0000000..193a48e --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardMainActivity.java @@ -0,0 +1,241 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.taverna.mobile.ui; + +import android.app.Dialog; +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.NavigationView; +import android.support.v4.app.Fragment; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.TableLayout; + +import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.activities.SettingsActivity; +import org.apache.taverna.mobile.data.DataManager; +import org.apache.taverna.mobile.data.local.PreferencesHelper; +import org.apache.taverna.mobile.ui.anouncements.AnnouncementFragment; +import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment; +import org.apache.taverna.mobile.ui.licence.LicenceFragment; +import org.apache.taverna.mobile.ui.login.LoginActivity; +import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowFragment; +import org.apache.taverna.mobile.ui.workflow.WorkflowFragment; +import org.apache.taverna.mobile.utils.ActivityUtils; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class DashboardMainActivity extends AppCompatActivity { + + @BindView(R.id.nav_view) + NavigationView navigationView; + + @BindView(R.id.drawer_layout) + DrawerLayout mDrawerLayout; + + @BindView(R.id.toolbar) + Toolbar toolbar; + + + private Dialog aboutDialog; + private DataManager dataManager; + private Fragment fragment; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_dashboard_main); + + ButterKnife.bind(this); + + if (navigationView != null) { + setupDrawerContent(navigationView); + } + + aboutDialog = new Dialog(this); + + setSupportActionBar(toolbar); + + final ActionBar ab = getSupportActionBar(); + + if (ab != null) { + ab.setHomeAsUpIndicator(R.drawable.ic_menu); + ab.setDisplayHomeAsUpEnabled(true); + } + + + /** + * Setting the Fragment in FrameLayout + */ + if (savedInstanceState == null) { + + fragment = new WorkflowFragment(); + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), fragment, + R.id.frame_container); + + navigationView.setCheckedItem(R.id.nav_workflows); + } + + dataManager = new DataManager(new PreferencesHelper(this)); + } + + + /** + * @param navigationView Design Support NavigationView OnClick Listener Event + */ + private void setupDrawerContent(final NavigationView navigationView) { + navigationView.setNavigationItemSelectedListener( + new NavigationView.OnNavigationItemSelectedListener() { + + @Override + public boolean onNavigationItemSelected(MenuItem menuItem) { + + switch (menuItem.getItemId()) { + case R.id.nav_workflows: + + fragment = new WorkflowFragment(); + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + fragment, R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + toolbar.setTitle(R.string.title_nav_all_workflows); + + return true; + + case R.id.nav_my_workflows: + + fragment = new MyWorkflowFragment(); + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + fragment, R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + toolbar.setTitle(R.string.title_nav_my_workflows); + return true; + + case R.id.nav_favourite_workflow: + + fragment = new FavouriteWorkflowsFragment(); + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + fragment, R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + toolbar.setTitle(R.string.title_nav_favourite_workflows); + return true; + + case R.id.nav_announcement: + + fragment = new AnnouncementFragment(); + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + fragment, R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + toolbar.setTitle(R.string.title_nav_announcement); + return true; + + + case R.id.nav_usage: + + aboutDialog.setCanceledOnTouchOutside(true); + aboutDialog.setTitle(getString(R.string.title_nav_usage)); + aboutDialog.setContentView(R.layout.usage_layout); + aboutDialog.show(); + mDrawerLayout.closeDrawers(); + return true; + + case R.id.nav_about: + + TableLayout about = (TableLayout) getLayoutInflater().inflate(R + .layout.about, navigationView, false); + + aboutDialog.setCanceledOnTouchOutside(true); + aboutDialog.setTitle(getString(R.string.title_nav_usage)); + aboutDialog.setContentView(about); + aboutDialog.show(); + mDrawerLayout.closeDrawers(); + return true; + + case R.id.os_licences: + + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + LicenceFragment.newInstance(), R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + toolbar.setTitle(R.string.title_nav_os_licences); + return true; + + case R.id.nav_settings: + + startActivity(new Intent(getApplicationContext(), + SettingsActivity.class)); + overridePendingTransition(android.R.anim.slide_in_left, android.R + .anim.slide_out_right); + + mDrawerLayout.closeDrawers(); + return true; + + case R.id.nav_logout: + + finish(); + + mDrawerLayout.closeDrawers(); + dataManager.getPreferencesHelper().setLoggedInFlag(false); + + startActivity(new Intent(getApplicationContext(), + LoginActivity.class)); + + return true; + + } + return true; + } + }); + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.dashboard_main, menu); + + return true; + } + + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + mDrawerLayout.openDrawer(GravityCompat.START); + return true; + } + return super.onOptionsItemSelected(item); + } + +}
