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 @@
-
-
-