Skip to content

Commit

Permalink
Changes for Lollipop material design
Browse files Browse the repository at this point in the history
- Change to material theme
- Change actionBar to Toolbar
- Distinguish mako Lollipop (modules fragment is not used)

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
  • Loading branch information
Stratos Karafotis committed Nov 24, 2014
1 parent 1065f13 commit ec7c0a4
Show file tree
Hide file tree
Showing 10 changed files with 186 additions and 106 deletions.
125 changes: 84 additions & 41 deletions sm/src/main/java/com/semaphore/sm/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
package com.semaphore.sm;

import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentManager;
Expand All @@ -21,9 +20,12 @@
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewConfiguration;
Expand All @@ -39,7 +41,7 @@
import java.lang.reflect.Field;
import java.util.ArrayList;

public class MainActivity extends Activity
public class MainActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks {

/**
Expand All @@ -51,20 +53,26 @@ public class MainActivity extends Activity
int fragmentPos = 0;
ArrayList<String> fragmentTitles;
private CharSequence mTitle;
private int leftToRight;

@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean darktheme = prefs.getBoolean("darktheme", false);
if (darktheme)
setTheme(android.R.style.Theme_Holo);

if ("mako".equals(android.os.Build.DEVICE))
Device = SemaDevices.Mako;
setTheme(R.style.AppThemeDark);
else
setTheme(R.style.AppTheme);

if ("mako".equals(android.os.Build.DEVICE)) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
Device = SemaDevices.MakoL;
else
Device = SemaDevices.Mako;
} else
Device = SemaDevices.I9000;

if (Device == SemaDevices.Mako)
if (Device == SemaDevices.Mako || Device == SemaDevices.MakoL)
sp = new SemaN4Properties();
else
sp = new SemaI9000Properties();
Expand Down Expand Up @@ -110,10 +118,18 @@ protected void onCreate(Bundle savedInstanceState) {
} catch (Exception ignored) {
}

ActionBar actionBar = getActionBar();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
// toolbar.setTitle(getString(R.string.app_name));
// toolbar.setSubtitle(SemaphoreVer);
}
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setNavigationMode(android.support.v7.app.ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayOptions(android.support.v7.app.ActionBar.DISPLAY_HOME_AS_UP | android.support.v7.app.ActionBar.DISPLAY_SHOW_TITLE);

if (savedInstanceState == null)
actionBar.setTitle(getString(R.string.app_name));
Expand All @@ -124,13 +140,46 @@ protected void onCreate(Bundle savedInstanceState) {
}

public void handleSwipeLeftToRight() {
if (fragmentPos < 5)
if (fragmentPos < 5) {
leftToRight = 1;
mNavigationDrawerFragment.selectItem(fragmentPos + 1);
}
}

public void handleSwipeRightToLeft() {
if (fragmentPos > 0)
if (fragmentPos > 0) {
leftToRight = 2;
mNavigationDrawerFragment.selectItem(fragmentPos - 1);
}
}

private Fragment createFragment(int i) {
Fragment fragment;

switch (i) {
case 0:
fragment = TabCPUFragment.newInstance(i);
break;
case 1:
fragment = TabTweaksFragment.newInstance(i);
break;
case 2:
fragment = TabModulesFragment.newInstance(i);
break;
case 3:
fragment = TabSAIFragment.newInstance(i);
break;
case 4:
fragment = TabInfoFragment.newInstance(i);
break;
case 5:
fragment = TabKmsgFragment.newInstance(i);
break;
default:
fragment = null;
}

return fragment;
}

@Override
Expand All @@ -140,29 +189,24 @@ public void onNavigationDrawerItemSelected(int position) {
FragmentTransaction ft = fm.beginTransaction()
.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);

boolean modulesOn = true;
if (MainActivity.Device == MainActivity.SemaDevices.MakoL)
modulesOn = false;
if (!modulesOn && position >= 2) {
if (leftToRight < 2)
position++;
else if (leftToRight == 2)
position--;
leftToRight = 0;
}

for (int i = 5; i >= 0; i--) {
if (!modulesOn && i == 2)
continue;

Fragment fragment = fm.findFragmentByTag(String.valueOf(i));
if (fragment == null && createFragments) {
switch (i) {
case 0:
fragment = TabCPUFragment.newInstance(i);
break;
case 1:
fragment = TabTweaksFragment.newInstance(i);
break;
case 2:
fragment = TabModulesFragment.newInstance(i);
break;
case 3:
fragment = TabSAIFragment.newInstance(i);
break;
case 4:
fragment = TabInfoFragment.newInstance(i);
break;
case 5:
fragment = TabKmsgFragment.newInstance(i);
break;
}
fragment = createFragment(i);
ft.add(R.id.container, fragment, String.valueOf(i));
}
if (i != position)
Expand All @@ -180,18 +224,17 @@ public void onNavigationDrawerItemSelected(int position) {

public void onSectionAttached(int number) {
mTitle = fragmentTitles.get(number - 1);
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setTitle(mTitle);
android.support.v7.app.ActionBar toolbar = getSupportActionBar();
if (toolbar != null) {
toolbar.setTitle(mTitle);
}
}

public void restoreActionBar() {
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
android.support.v7.app.ActionBar toolbar = getSupportActionBar();
if (toolbar != null) {
toolbar.setDisplayShowTitleEnabled(true);
toolbar.setTitle(mTitle);
}
}

Expand Down Expand Up @@ -234,7 +277,7 @@ public boolean onOptionsItemSelected(MenuItem item) {


public enum SemaDevices {
I9000, Mako
I9000, Mako, MakoL
}

public static SemaDevices Device;
Expand All @@ -248,7 +291,7 @@ private void checkFirstRun() {

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
needRead = !prefs.contains("gov");
if (Device == SemaDevices.Mako)
if (Device == SemaDevices.Mako || Device == SemaDevices.MakoL)
needRead = needRead || !prefs.contains("led_red") || !prefs.contains("read_ahead")
|| !prefs.contains("uv_lower_uv") || !prefs.contains("hp_enabled")
|| !prefs.contains("hp_max_online") || !prefs.contains("scaling_min_freq")
Expand Down
58 changes: 38 additions & 20 deletions sm/src/main/java/com/semaphore/sm/NavigationDrawerFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@
import android.app.Fragment;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
Expand Down Expand Up @@ -60,6 +62,7 @@ public class NavigationDrawerFragment extends Fragment {
private DrawerLayout mDrawerLayout;
private ListView mDrawerListView;
private View mFragmentContainerView;
private Toolbar mToolBar;

private int mCurrentSelectedPosition = 0;
private boolean mFromSavedInstanceState;
Expand Down Expand Up @@ -105,26 +108,38 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
if (mDarkTheme)
mDrawerListView.setBackgroundColor(0xFF636363);
else
mDrawerListView.setBackgroundColor(0xFFcccccc);
}
mDrawerListView.setBackgroundColor(0xFFFFFFFF);
};
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
});
String[] str;
if (MainActivity.Device == MainActivity.SemaDevices.MakoL) {
str = new String[] {
getString(R.string.title_section_cpu),
getString(R.string.title_section_tweaks),
getString(R.string.title_section_sai),
getString(R.string.title_section_info),
getString(R.string.title_section_kmsg),
};
} else {
str = new String[]{
getString(R.string.title_section_cpu),
getString(R.string.title_section_tweaks),
getString(R.string.title_section_modules),
getString(R.string.title_section_sai),
getString(R.string.title_section_info),
getString(R.string.title_section_kmsg),
};
}
mDrawerListView.setAdapter(new ArrayAdapter<String>(
getActionBar().getThemedContext(),
getActivity(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
new String[]{
getString(R.string.title_section_cpu),
getString(R.string.title_section_tweaks),
getString(R.string.title_section_modules),
getString(R.string.title_section_sai),
getString(R.string.title_section_info),
getString(R.string.title_section_kmsg),
}));
str));
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
}
Expand All @@ -147,16 +162,18 @@ public void setUp(int fragmentId, DrawerLayout drawerLayout) {
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
mToolBar = (Toolbar) getActivity().findViewById(R.id.toolbar);
// ActionBar actionBar = getActionBar();
// actionBar.setDisplayHomeAsUpEnabled(true);
// actionBar.setHomeButtonEnabled(true);
// ((ActionBarActivity) getActivity()).setSupportActionBar(mToolBar);

// ActionBarDrawerToggle ties together the the proper interactions
// between the navigation drawer and the action bar app icon.
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(), /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
mToolBar, /* nav drawer image to replace 'Up' caret */
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
R.string.navigation_drawer_close /* "close drawer" description for accessibility */
) {
Expand Down Expand Up @@ -279,10 +296,11 @@ public boolean onOptionsItemSelected(MenuItem item) {
* 'context', rather than just what's in the current screen.
*/
private void showGlobalContextActionBar() {
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setTitle(R.string.app_name);
// ActionBar actionBar = getActionBar();
// actionBar.setDisplayShowTitleEnabled(true);
// actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
// actionBar.setTitle(R.string.app_name);
mToolBar.setTitle(R.string.app_name);
}

private ActionBar getActionBar() {
Expand Down
Loading

0 comments on commit ec7c0a4

Please sign in to comment.