diff --git a/Clover/app/src/main/AndroidManifest.xml b/Clover/app/src/main/AndroidManifest.xml index a7752e54..fd559b3d 100644 --- a/Clover/app/src/main/AndroidManifest.xml +++ b/Clover/app/src/main/AndroidManifest.xml @@ -80,45 +80,20 @@ along with this program. If not, see . android:windowSoftInputMode="adjustResize" /> - - + android:label="@string/action_settings" /> - - + android:label="@string/preference_watch_settings" /> - - + android:label="@string/preference_pass_settings" /> - - + android:label="@string/preference_about" /> - - + android:label="@string/board_edit" /> . - - + android:label="@string/settings_advanced_label" /> list; @@ -70,7 +69,10 @@ public class BoardEditor extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.setTheme(this); + setTheme(); + setContentView(R.layout.toolbar_activity); + setToolbar(); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); list = boardManager.getSavedBoards(); @@ -150,7 +152,7 @@ public class BoardEditor extends Activity { } }); - setContentView(listView); + ((ViewGroup)findViewById(R.id.content)).addView(listView); } @Override @@ -186,6 +188,9 @@ public class BoardEditor extends Activity { ChanPreferences.setBoardEditorFillerEnabled(!ChanPreferences.getBoardEditorFillerEnabled()); item.setChecked(ChanPreferences.getBoardEditorFillerEnabled()); return true; + case android.R.id.home: + finish(); + return true; } return super.onOptionsItemSelected(item); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/DeveloperActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/DeveloperActivity.java index 22c802dd..39d6c15d 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/DeveloperActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/DeveloperActivity.java @@ -17,7 +17,6 @@ */ package org.floens.chan.ui.activity; -import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; @@ -25,17 +24,21 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.floens.chan.ChanApplication; +import org.floens.chan.R; import org.floens.chan.core.model.SavedReply; -import org.floens.chan.utils.ThemeHelper; +import org.floens.chan.ui.ThemeActivity; import java.util.Random; -public class DeveloperActivity extends Activity { +public class DeveloperActivity extends ThemeActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.setTheme(this); + setTheme(); + setContentView(R.layout.toolbar_activity); + setToolbar(); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); LinearLayout wrapper = new LinearLayout(this); wrapper.setOrientation(LinearLayout.VERTICAL); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java index 37bd50fa..a7b1f0a2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/PassSettingsActivity.java @@ -17,7 +17,6 @@ */ package org.floens.chan.ui.activity; -import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.app.FragmentTransaction; @@ -25,16 +24,15 @@ import android.app.ProgressDialog; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; +import android.support.v7.widget.SwitchCompat; import android.text.TextUtils; import android.view.LayoutInflater; -import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.Switch; import android.widget.TextView; import org.floens.chan.ChanApplication; @@ -43,54 +41,47 @@ import org.floens.chan.core.ChanPreferences; import org.floens.chan.core.manager.ReplyManager; import org.floens.chan.core.manager.ReplyManager.PassResponse; import org.floens.chan.core.model.Pass; -import org.floens.chan.utils.ThemeHelper; +import org.floens.chan.ui.ThemeActivity; import org.floens.chan.utils.Utils; -public class PassSettingsActivity extends Activity implements OnCheckedChangeListener { - private static PassSettingsActivity instance; - - private Switch enableSwitch; +public class PassSettingsActivity extends ThemeActivity implements OnCheckedChangeListener { + private SwitchCompat onSwitch; + private TextView toggleStatus; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.setTheme(this); - - instance = this; + setTheme(); + setContentView(R.layout.header_switch_layout); + setToolbar(); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); - setFragment(ChanPreferences.getPassEnabled()); - } + findViewById(R.id.toggle_bar).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onSwitch.toggle(); + } + }); - @Override - protected void onDestroy() { - super.onDestroy(); + toggleStatus = (TextView) findViewById(R.id.toggle_status); + onSwitch = (SwitchCompat) findViewById(R.id.toggle); + onSwitch.setOnCheckedChangeListener(this); + setSwitch(ChanPreferences.getPassEnabled()); - instance = null; + setFragment(ChanPreferences.getPassEnabled()); } @Override - public void onBackPressed() { - super.onBackPressed(); + public void onPause() { + super.onPause(); if (TextUtils.isEmpty(ChanPreferences.getPassId())) { ChanPreferences.setPassEnabled(false); + setSwitch(false); } } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.action_bar_switch, menu); - - enableSwitch = (Switch) menu.findItem(R.id.action_bar_switch).getActionView(); - enableSwitch.setOnCheckedChangeListener(this); - enableSwitch.setPadding(0, 0, Utils.dp(14), 0); - - setSwitch(ChanPreferences.getPassEnabled()); - - return true; - } - @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { setFragment(isChecked); @@ -98,19 +89,21 @@ public class PassSettingsActivity extends Activity implements OnCheckedChangeLis } private void setSwitch(boolean enabled) { - enableSwitch.setChecked(enabled); + onSwitch.setChecked(enabled); + toggleStatus.setText(enabled ? R.string.on : R.string.off); + ChanPreferences.setPassEnabled(enabled); } private void setFragment(boolean enabled) { if (enabled) { FragmentTransaction t = getFragmentManager().beginTransaction(); - t.replace(android.R.id.content, new PassSettingsFragment()); + t.replace(R.id.content, new PassSettingsFragment()); t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); t.commit(); } else { FragmentTransaction t = getFragmentManager().beginTransaction(); - t.replace(android.R.id.content, new TextFragment()); + t.replace(R.id.content, new TextFragment()); t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); t.commit(); } @@ -144,10 +137,9 @@ public class PassSettingsActivity extends Activity implements OnCheckedChangeLis login.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - if (PassSettingsActivity.instance != null) { - Pass pass = new Pass(ChanPreferences.getPassToken(), ChanPreferences.getPassPin()); - onLoginClick(pass); - } + Pass pass = new Pass(ChanPreferences.getPassToken(), ChanPreferences.getPassPin()); + onLoginClick(pass); + return true; } }); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java index 8144a1a2..4b032a53 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java @@ -45,14 +45,13 @@ public class ReplyActivity extends ThemeActivity { staticLoadable = null; if (loadable != null && savedInstanceState == null) { - setContentView(R.layout.reply_activity); setTheme(); + setContentView(R.layout.toolbar_activity); setToolbar(); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); FragmentTransaction ft = getFragmentManager().beginTransaction(); - ft.replace(R.id.reply_fragment, ReplyFragment.newInstance(loadable, false), "reply"); + ft.replace(R.id.content, ReplyFragment.newInstance(loadable, false), "reply"); ft.commitAllowingStateLoss(); } else if (savedInstanceState == null) { Logger.e(TAG, "Loadable was null, exiting!"); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java index f19ecafb..8dd80be0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/SettingsActivity.java @@ -17,17 +17,17 @@ */ package org.floens.chan.ui.activity; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import org.floens.chan.R; +import org.floens.chan.ui.ThemeActivity; import org.floens.chan.ui.fragment.SettingsFragment; import org.floens.chan.utils.ThemeHelper; -public class SettingsActivity extends Activity { +public class SettingsActivity extends ThemeActivity { private static boolean doingThemeRestart = false; private static ThemeHelper.Theme lastTheme; @@ -35,15 +35,18 @@ public class SettingsActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(); + setContentView(R.layout.toolbar_activity); + setToolbar(); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + if (!doingThemeRestart) { lastTheme = ThemeHelper.getInstance().getTheme(); } - ThemeHelper.setTheme(this); - SettingsFragment frag = new SettingsFragment(); frag.setArguments(getIntent().getExtras()); - getFragmentManager().beginTransaction().replace(android.R.id.content, frag).commit(); + getFragmentManager().beginTransaction().replace(R.id.content, frag).commit(); } public void restart(Intent intent) { @@ -77,6 +80,9 @@ public class SettingsActivity extends Activity { if (item.getItemId() == R.id.action_settings_advanced) { startActivity(new Intent(this, AdvancedSettingsActivity.class)); return true; + } else if (item.getItemId() == android.R.id.home) { + finish(); + return true; } else { return super.onOptionsItemSelected(item); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/WatchSettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/WatchSettingsActivity.java index c18b7053..f308af37 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/WatchSettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/WatchSettingsActivity.java @@ -17,56 +17,52 @@ */ package org.floens.chan.ui.activity; -import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceFragment; -import android.view.Gravity; +import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; -import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.LinearLayout; -import android.widget.Switch; import android.widget.TextView; import org.floens.chan.ChanApplication; import org.floens.chan.R; import org.floens.chan.core.ChanPreferences; -import org.floens.chan.utils.ThemeHelper; -import org.floens.chan.utils.Utils; +import org.floens.chan.ui.ThemeActivity; -public class WatchSettingsActivity extends Activity implements OnCheckedChangeListener { - private Switch watchSwitch; +public class WatchSettingsActivity extends ThemeActivity implements OnCheckedChangeListener { + private SwitchCompat watchSwitch; + private TextView toggleStatus; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.setTheme(this); + setTheme(); + setContentView(R.layout.header_switch_layout); + setToolbar(); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); - setFragment(ChanPreferences.getWatchEnabled()); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.action_bar_switch, menu); + findViewById(R.id.toggle_bar).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + watchSwitch.toggle(); + } + }); - watchSwitch = (Switch) menu.findItem(R.id.action_bar_switch).getActionView(); + toggleStatus = (TextView) findViewById(R.id.toggle_status); + watchSwitch = (SwitchCompat) findViewById(R.id.toggle); watchSwitch.setOnCheckedChangeListener(this); - watchSwitch.setPadding(0, 0, Utils.dp(14), 0); - setSwitch(ChanPreferences.getWatchEnabled()); - return true; + setFragment(ChanPreferences.getWatchEnabled()); } @Override @@ -77,30 +73,20 @@ public class WatchSettingsActivity extends Activity implements OnCheckedChangeLi private void setSwitch(boolean enabled) { watchSwitch.setChecked(enabled); + toggleStatus.setText(enabled ? R.string.on : R.string.off); ChanPreferences.setWatchEnabled(enabled); - - watchSwitch.setEnabled(false); - new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { - @Override - public void run() { - watchSwitch.setEnabled(true); - } - }, 500); } private void setFragment(boolean enabled) { + FragmentTransaction t = getFragmentManager().beginTransaction(); if (enabled) { - FragmentTransaction t = getFragmentManager().beginTransaction(); - t.replace(android.R.id.content, new WatchSettingsFragment()); - t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); - t.commit(); + t.replace(R.id.content, new WatchSettingsFragment()); } else { - FragmentTransaction t = getFragmentManager().beginTransaction(); - t.replace(android.R.id.content, TextFragment.newInstance(R.string.watch_info_text)); - t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); - t.commit(); + t.replace(R.id.content, TextFragment.newInstance(R.string.watch_info_text)); } + t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); + t.commit(); } public static class TextFragment extends Fragment { @@ -114,18 +100,10 @@ public class WatchSettingsActivity extends Activity implements OnCheckedChangeLi @Override public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle savedInstanceState) { - LinearLayout container = new LinearLayout(inflater.getContext()); - - int p = Utils.dp(14); - container.setPadding(p, p, p, p); + ViewGroup container = (ViewGroup) inflater.inflate(R.layout.watch_description, null); - TextView text = new TextView(inflater.getContext()); - text.setTextSize(20); + TextView text = (TextView) container.findViewById(R.id.text); text.setText(getArguments().getInt("text_resource")); - text.setGravity(Gravity.CENTER); - - container.setGravity(Gravity.CENTER); - container.addView(text); return container; } diff --git a/Clover/app/src/main/res/layout/board_select_add.xml b/Clover/app/src/main/res/layout/board_select_add.xml index 1b76c3aa..c4abbb36 100644 --- a/Clover/app/src/main/res/layout/board_select_add.xml +++ b/Clover/app/src/main/res/layout/board_select_add.xml @@ -22,7 +22,7 @@ along with this program. If not, see . android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" - android:textColor="#FFF3F3F3" + android:textColor="#ff000000" android:gravity="center_vertical" android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" android:paddingRight="?android:attr/listPreferredItemPaddingRight" diff --git a/Clover/app/src/main/res/layout/header_switch_layout.xml b/Clover/app/src/main/res/layout/header_switch_layout.xml new file mode 100644 index 00000000..98681879 --- /dev/null +++ b/Clover/app/src/main/res/layout/header_switch_layout.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Clover/app/src/main/res/layout/preference_pass.xml b/Clover/app/src/main/res/layout/preference_pass.xml index 5860e0d3..d86b4a45 100644 --- a/Clover/app/src/main/res/layout/preference_pass.xml +++ b/Clover/app/src/main/res/layout/preference_pass.xml @@ -1,5 +1,4 @@ - - - + android:gravity="center" + android:padding="24dp"> + style="?android:attr/textAppearanceMedium" /> . android:text="@string/pass_info_learn_more" android:textColor="@android:color/holo_blue_light" android:textSize="20sp" - android:textStyle="italic"/> + android:textStyle="italic" /> \ No newline at end of file diff --git a/Clover/app/src/main/res/layout/reply_activity.xml b/Clover/app/src/main/res/layout/toolbar_activity.xml similarity index 95% rename from Clover/app/src/main/res/layout/reply_activity.xml rename to Clover/app/src/main/res/layout/toolbar_activity.xml index f1b27e7f..30f79740 100644 --- a/Clover/app/src/main/res/layout/reply_activity.xml +++ b/Clover/app/src/main/res/layout/toolbar_activity.xml @@ -23,7 +23,7 @@ along with this program. If not, see . diff --git a/Clover/app/src/main/res/layout/watch_description.xml b/Clover/app/src/main/res/layout/watch_description.xml new file mode 100644 index 00000000..9f2e53c9 --- /dev/null +++ b/Clover/app/src/main/res/layout/watch_description.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/Clover/app/src/main/res/menu/action_bar_switch.xml b/Clover/app/src/main/res/menu/action_bar_switch.xml index 9b901b8e..42c467d3 100644 --- a/Clover/app/src/main/res/menu/action_bar_switch.xml +++ b/Clover/app/src/main/res/menu/action_bar_switch.xml @@ -1,5 +1,4 @@ - - - + - + app:showAsAction="always" /> \ No newline at end of file diff --git a/Clover/app/src/main/res/menu/board_edit.xml b/Clover/app/src/main/res/menu/board_edit.xml index 0c719afd..38f7aadf 100644 --- a/Clover/app/src/main/res/menu/board_edit.xml +++ b/Clover/app/src/main/res/menu/board_edit.xml @@ -1,5 +1,4 @@ - - - + + app:showAsAction="always" + android:title="@string/board_add" /> + android:title="@string/board_edit_enable_filler" /> diff --git a/Clover/app/src/main/res/menu/image_view.xml b/Clover/app/src/main/res/menu/image_view.xml index 8b523982..23d252e9 100644 --- a/Clover/app/src/main/res/menu/image_view.xml +++ b/Clover/app/src/main/res/menu/image_view.xml @@ -15,40 +15,41 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --> - + \ No newline at end of file diff --git a/Clover/app/src/main/res/menu/settings.xml b/Clover/app/src/main/res/menu/settings.xml index 8e39bcca..4b869035 100644 --- a/Clover/app/src/main/res/menu/settings.xml +++ b/Clover/app/src/main/res/menu/settings.xml @@ -16,10 +16,11 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --> - + diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 8f5513db..b480a6bc 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -25,6 +25,8 @@ along with this program. If not, see . Close Back OK + On + Off Settings Reload