diff --git a/Chan/res/layout/activity_base.xml b/Chan/res/layout/activity_base.xml
index b589a651..059dacab 100644
--- a/Chan/res/layout/activity_base.xml
+++ b/Chan/res/layout/activity_base.xml
@@ -10,13 +10,13 @@
diff --git a/Chan/src/org/floens/chan/ui/activity/BoardActivity.java b/Chan/src/org/floens/chan/ui/activity/BoardActivity.java
index fdf7041d..b9681c64 100644
--- a/Chan/src/org/floens/chan/ui/activity/BoardActivity.java
+++ b/Chan/src/org/floens/chan/ui/activity/BoardActivity.java
@@ -11,6 +11,7 @@ import org.floens.chan.core.model.Pin;
import org.floens.chan.core.model.Post;
import org.floens.chan.service.WatchService;
import org.floens.chan.ui.fragment.ThreadFragment;
+import org.floens.chan.utils.Utils;
import android.app.ActionBar;
import android.app.AlertDialog;
@@ -22,10 +23,13 @@ import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.text.TextUtils;
+import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
+import android.widget.FrameLayout;
public class BoardActivity extends BaseActivity implements ActionBar.OnNavigationListener {
private Loadable boardLoadable = new Loadable();
@@ -49,16 +53,13 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
ft.replace(R.id.right_pane, threadFragment);
ft.commitAllowingStateLoss();
+ updatePaneState();
updateActionBarState();
final ActionBar actionBar = getActionBar();
actionBar.setListNavigationCallbacks(
- new ArrayAdapter(
- actionBar.getThemedContext(),
- R.layout.board_select_spinner,
- android.R.id.text1,
- ChanApplication.getBoardManager().getMyBoardsKeys()
- ), this);
+ new ArrayAdapter(actionBar.getThemedContext(), R.layout.board_select_spinner,
+ android.R.id.text1, ChanApplication.getBoardManager().getMyBoardsKeys()), this);
Intent startIntent = getIntent();
Uri startUri = startIntent.getData();
@@ -111,8 +112,9 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
@Override
protected void initDrawer() {
- pinDrawerListener = new ActionBarDrawerToggle(this, pinDrawer,
- R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {};
+ pinDrawerListener = new ActionBarDrawerToggle(this, pinDrawer, R.drawable.ic_drawer, R.string.drawer_open,
+ R.string.drawer_close) {
+ };
super.initDrawer();
}
@@ -141,6 +143,44 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
super.onConfigurationChanged(newConfig);
pinDrawerListener.onConfigurationChanged(newConfig);
updateActionBarState();
+
+ updatePaneState();
+ }
+
+ private void updatePaneState() {
+ DisplayMetrics metrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ int width = metrics.widthPixels;
+
+ FrameLayout left = (FrameLayout) findViewById(R.id.left_pane);
+ FrameLayout right = (FrameLayout) findViewById(R.id.right_pane);
+
+ LayoutParams leftParams = left.getLayoutParams();
+ LayoutParams rightParams = right.getLayoutParams();
+
+ // Content view dp's:
+ // Nexus 4 is 384 x 640 dp
+ // Nexus 7 is 600 x 960 dp
+ // Nexus 10 is 800 x 1280 dp
+
+ if (width < Utils.dp(800)) {
+ if (width < Utils.dp(400)) {
+ leftParams.width = width - Utils.dp(30);
+ } else {
+ leftParams.width = width - Utils.dp(150);
+ }
+ rightParams.width = width;
+ } else {
+ leftParams.width = Utils.dp(300);
+ rightParams.width = width - Utils.dp(300);
+ }
+
+ left.setLayoutParams(leftParams);
+ right.setLayoutParams(rightParams);
+
+ threadPane.requestLayout();
+ left.requestLayout();
+ right.requestLayout();
}
@Override
@@ -235,7 +275,7 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
return true;
}
- switch(item.getItemId()) {
+ switch (item.getItemId()) {
case R.id.action_reload_board:
case R.id.action_reload_tablet_board:
boardFragment.reload();
@@ -300,7 +340,8 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
}
private void startLoadingBoard(Loadable loadable) {
- if (loadable.mode == Loadable.Mode.INVALID) return;
+ if (loadable.mode == Loadable.Mode.INVALID)
+ return;
boardLoadable = loadable;
@@ -313,7 +354,8 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
}
private void startLoadingThread(Loadable loadable) {
- if (loadable.mode == Loadable.Mode.INVALID) return;
+ if (loadable.mode == Loadable.Mode.INVALID)
+ return;
Pin pin = ChanApplication.getPinnedManager().findPinByLoadable(loadable);
if (pin != null) {
@@ -341,6 +383,7 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
/**
* Handle opening from an external url.
+ *
* @param startUri
*/
private void handleIntentURI(Uri startUri) {
@@ -374,7 +417,8 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
try {
no = Integer.parseInt(parts.get(2));
- } catch (NumberFormatException e) {}
+ } catch (NumberFormatException e) {
+ }
if (no >= 0 && ChanApplication.getBoardManager().getBoardExists(rawBoard)) {
boardSetByIntent = true;
@@ -391,31 +435,26 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
}
private void handleIntentURIFallback(final String url) {
- new AlertDialog.Builder(this)
- .setTitle(R.string.open_unknown_title)
- .setMessage(R.string.open_unknown)
- .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Cancel button
- finish();
- }
- })
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Ok button
- showUrlOpenPicker(url);
- }
- })
- .setCancelable(false)
- .create()
- .show();
+ new AlertDialog.Builder(this).setTitle(R.string.open_unknown_title).setMessage(R.string.open_unknown)
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Cancel button
+ finish();
+ }
+ }).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Ok button
+ showUrlOpenPicker(url);
+ }
+ }).setCancelable(false).create().show();
}
/**
- * Set the visual selector to the board. If the user has not set the board as a favorite,
- * return false.
+ * Set the visual selector to the board. If the user has not set the board
+ * as a favorite, return false.
+ *
* @param boardValue
* @return true if spinner was set, false otherwise
*/
@@ -437,6 +476,3 @@ public class BoardActivity extends BaseActivity implements ActionBar.OnNavigatio
}
}
}
-
-
-
diff --git a/Chan/src/org/floens/chan/ui/activity/WatchSettingsActivity.java b/Chan/src/org/floens/chan/ui/activity/WatchSettingsActivity.java
index 9a59be3d..1db89e83 100644
--- a/Chan/src/org/floens/chan/ui/activity/WatchSettingsActivity.java
+++ b/Chan/src/org/floens/chan/ui/activity/WatchSettingsActivity.java
@@ -39,7 +39,7 @@ public class WatchSettingsActivity extends Activity implements OnCheckedChangeLi
watchSwitch = (Switch) menu.findItem(R.id.enable_watch_switch).getActionView();
watchSwitch.setOnCheckedChangeListener(this);
- watchSwitch.setPadding(0, 0, Utils.dp(this, 14), 0);
+ watchSwitch.setPadding(0, 0, Utils.dp(14), 0);
setEnabled(ChanPreferences.getWatchEnabled());
@@ -90,7 +90,7 @@ public class WatchSettingsActivity extends Activity implements OnCheckedChangeLi
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle savedInstanceState) {
LinearLayout container = new LinearLayout(inflater.getContext());
- int p = Utils.dp(inflater.getContext(), 14);
+ int p = Utils.dp(14);
container.setPadding(p, p, p, p);
TextView text = new TextView(inflater.getContext());
diff --git a/Chan/src/org/floens/chan/ui/adapter/PostAdapter.java b/Chan/src/org/floens/chan/ui/adapter/PostAdapter.java
index d8ec0ced..6fd3ebd6 100644
--- a/Chan/src/org/floens/chan/ui/adapter/PostAdapter.java
+++ b/Chan/src/org/floens/chan/ui/adapter/PostAdapter.java
@@ -92,7 +92,7 @@ public class PostAdapter extends BaseAdapter {
view.init(threadManager, listView, this);
int padding = context.getResources().getDimensionPixelSize(R.dimen.general_padding);
view.setPadding(padding, padding, padding, padding);
- int height = Utils.dp(context, 48f);
+ int height = Utils.dp(48f);
view.setHeight(height);
view.setGravity(Gravity.CENTER);
return view;
diff --git a/Chan/src/org/floens/chan/ui/view/PostView.java b/Chan/src/org/floens/chan/ui/view/PostView.java
index 170d3b76..c0730766 100644
--- a/Chan/src/org/floens/chan/ui/view/PostView.java
+++ b/Chan/src/org/floens/chan/ui/view/PostView.java
@@ -316,7 +316,7 @@ public class PostView extends LinearLayout implements View.OnClickListener, View
lastSeen = new View(context);
lastSeen.setBackgroundColor(0xffff0000);
- right.addView(lastSeen, new LayoutParams(LayoutParams.MATCH_PARENT, Utils.dp(context, 6f)));
+ right.addView(lastSeen, new LayoutParams(LayoutParams.MATCH_PARENT, Utils.dp(6f)));
full.addView(right, matchWrapParams);
diff --git a/Chan/src/org/floens/chan/utils/Utils.java b/Chan/src/org/floens/chan/utils/Utils.java
index c82d0d89..2999a142 100644
--- a/Chan/src/org/floens/chan/utils/Utils.java
+++ b/Chan/src/org/floens/chan/utils/Utils.java
@@ -1,22 +1,31 @@
package org.floens.chan.utils;
+import org.floens.chan.ChanApplication;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Looper;
-import android.util.TypedValue;
+import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
public class Utils {
+ private static DisplayMetrics displayMetrics;
+
public final static ViewGroup.LayoutParams MATCH_PARAMS = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
public final static ViewGroup.LayoutParams WRAP_PARAMS = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
public final static ViewGroup.LayoutParams MATCH_WRAP_PARAMS = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
public final static ViewGroup.LayoutParams WRAP_MATCH_PARAMS = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT);
- public static int dp(Context context, float dp) {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
+ public static int dp(float dp) {
+// return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
+ if (displayMetrics == null) {
+ displayMetrics = ChanApplication.getInstance().getResources().getDisplayMetrics();
+ }
+
+ return (int) (dp * displayMetrics.density);
}
/**