diff --git a/app/build.gradle b/app/build.gradle index 4fd33973823acc5c952040eafb835338b40590e8..bfeb860630e2fa50e90a2fa5eb4c723c442074ce 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -175,6 +175,7 @@ dependencies { compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { transitive = true } compile('com.github.afollestad.material-dialogs:commons:0.8.5.3@aar') { transitive = true } compile 'com.afollestad:material-cab:0.1.12' + compile 'com.jenzz:materialpreference:1.3' // ORM apt "com.github.Raizlabs.DBFlow:dbflow-processor:3.1.1" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 88188d21c6f77a525fd05304d41818c247693a86..ca96139bc828cce657912f05a695a1fc843a8ac0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,154 +49,132 @@ <activity android:name=".ui.chat.MainActivity" android:label="@string/appName" - android:launchMode="singleTask" android:parentActivityName=".ui.LoginActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.chat.ChannelDetailActivity" android:label="@string/titleChannelDetails" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.chatlist.ChatListListActivity" android:label="@string/titleEditChatLists" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.chatlist.ChatListEditActivity" android:label="@string/titleEditChatList" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.chatlist.ChatListListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.chatlist.ChatListCreateActivity" android:label="@string/titleCreateChatList" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.chatlist.ChatListListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.network.NetworkListActivity" android:label="@string/titleEditNetworks" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.network.NetworkEditActivity" android:label="@string/titleEditNetwork" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.network.NetworkListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.network.NetworkCreateActivity" android:label="@string/titleCreateNetwork" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.network.NetworkListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.network.server.NetworkServerListActivity" android:label="@string/titleEditNetworkServers" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.network.NetworkEditActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.identity.IdentityListActivity" android:label="@string/titleEditIdentities" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.identity.IdentityEditActivity" android:label="@string/titleEditIdentity" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.identity.IdentityListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.identity.IdentityCreateActivity" android:label="@string/titleCreateIdentity" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.identity.IdentityListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.identity.nick.IdentityNickListActivity" android:label="@string/titleEditNicks" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.identity.IdentityEditActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.network.server.NetworkServerEditActivity" android:label="@string/titleEditNetworkServer" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.network.server.NetworkServerListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.ignore.IgnoreListActivity" android:label="@string/titleEditIgnoreList" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.ignore.IgnoreRuleEditActivity" android:label="@string/titleEditIgnoreRule" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.ignore.IgnoreListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.aliases.AliasListActivity" android:label="@string/titleEditAliases" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.coresettings.aliases.AliasEditActivity" android:label="@string/titleEditAlias" - android:launchMode="singleTask" android:parentActivityName=".ui.coresettings.aliases.AliasListActivity" android:theme="@style/AppTheme.Light"/> <activity android:name=".ui.setup.AccountSetupActivity" android:label="@string/titleAccountSetup" - android:launchMode="singleTask" android:parentActivityName=".ui.setup.AccountSelectActivity" android:theme="@style/SetupTheme"/> <activity android:name=".ui.setup.AccountSelectActivity" android:label="@string/titleAccountSelection" - android:launchMode="singleTask" android:parentActivityName=".ui.LoginActivity" android:theme="@style/SetupTheme"/> <activity android:name=".ui.setup.CoreSetupActivity" android:label="@string/titleCoreSetup" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/SetupTheme"/> <activity android:name=".ui.settings.SettingsActivity" android:label="@string/titleSettings" - android:launchMode="singleTask" android:parentActivityName=".ui.chat.MainActivity" android:theme="@style/AppTheme.Light"/> diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java index 18a00057c4f092c4b60d14f5078b17e7fc30c6cf..7f91d24d570b42f83c6b2f3a102bee0e4dd66031 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java @@ -34,6 +34,8 @@ import de.kuschku.quasseldroid_ng.ui.setup.AccountSelectActivity; import de.kuschku.quasseldroid_ng.ui.theme.AppContext; public class LoginActivity extends AppCompatActivity { + public static final int REQUEST_CODE_SELECT = 8; + static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } @@ -60,23 +62,25 @@ public class LoginActivity extends AppCompatActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - // If we select a different core than we used last time, clear the database - if (!context.settings().preferenceLastAccount.get().equals(data.getBundleExtra("extra").getString("account"))) - deleteDatabase(ConnectedDatabase.NAME); + if (requestCode == REQUEST_CODE_SELECT) { + if (resultCode == RESULT_OK) { + // If we select a different core than we used last time, clear the database + if (!context.settings().preferenceLastAccount.get().equals(data.getBundleExtra("extra").getString("account"))) + deleteDatabase(ConnectedDatabase.NAME); - context.settings().preferenceLastAccount.set(data.getBundleExtra("extra").getString("account")); - checkReady(); - firstStart = true; - } else if (context.settings().preferenceLastAccount.get().isEmpty()) { - finish(); + context.settings().preferenceLastAccount.set(data.getBundleExtra("extra").getString("account")); + checkReady(); + firstStart = true; + } else { + finish(); + } } } private boolean checkReady() { if (context.settings().preferenceLastAccount.get().isEmpty()) { Intent intent = new Intent(this, AccountSelectActivity.class); - startActivityForResult(intent, 0); + startActivityForResult(intent, REQUEST_CODE_SELECT); firstStart = true; return true; } else if (firstStart) { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java index a168e595d40c1777b2d7ddb364886ec07e1068c9..0dae6699b0b9ad7eb93ff405507100a1a1745004 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java @@ -23,6 +23,7 @@ package de.kuschku.quasseldroid_ng.ui.chat; import android.app.SearchManager; import android.content.Intent; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -42,6 +43,9 @@ import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import android.widget.AdapterView; import android.widget.Toast; @@ -94,6 +98,7 @@ import de.kuschku.quasseldroid_ng.ui.coresettings.ignore.IgnoreListActivity; import de.kuschku.quasseldroid_ng.ui.coresettings.network.NetworkListActivity; import de.kuschku.quasseldroid_ng.ui.settings.SettingsActivity; import de.kuschku.quasseldroid_ng.ui.setup.CoreSetupActivity; +import de.kuschku.util.CompatibilityUtils; import de.kuschku.util.accounts.Account; import de.kuschku.util.accounts.AccountManager; import de.kuschku.util.annotationbind.AutoBinder; @@ -218,6 +223,24 @@ public class MainActivity extends BoundActivity { nickList.setLayoutManager(new LinearLayoutManager(this)); nickList.setItemAnimator(new DefaultItemAnimator()); nickList.addItemDecoration(new DividerItemDecoration(this)); + + setStatusBar(); + } + + private void setStatusBar() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Window window = getWindow(); + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(getResources().getColor(android.R.color.transparent)); + + nickList.setPadding(0, CompatibilityUtils.getStatusBarHeight(this), 0, 0); + + View viewById = findViewById(R.id.statusBarBackground); + ViewGroup.LayoutParams layoutParams = viewById.getLayoutParams(); + layoutParams.height = CompatibilityUtils.getStatusBarHeight(this); + viewById.setLayoutParams(layoutParams); + } } @Override diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java index 34d068acd4eef2e65ad6fa7ab30818b8ecff15d3..0754e8593e4d47855be12484c6c40f18fd5e5556 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java @@ -21,8 +21,6 @@ package de.kuschku.quasseldroid_ng.ui.chat.drawer; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.StateListDrawable; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -33,7 +31,6 @@ import android.widget.TextView; import com.bignerdranch.expandablerecyclerview.ViewHolder.ChildViewHolder; import com.google.common.base.Function; -import com.mikepenz.materialize.util.UIUtils; import java.util.Locale; @@ -55,7 +52,6 @@ import de.kuschku.util.observables.lists.ObservableElement; public class BufferViewHolder extends ChildViewHolder { private final AppContext context; - private final StateListDrawable background; public int id; @Bind(R.id.material_drawer_icon) ImageView icon; @@ -77,12 +73,6 @@ public class BufferViewHolder extends ChildViewHolder { super(itemView); ButterKnife.bind(this, itemView); this.context = context; - - background = new StateListDrawable(); - background.addState(new int[]{android.R.attr.state_selected}, new ColorDrawable(context.themeUtil().res.colorSelected)); - background.addState(new int[]{android.R.attr.state_checked}, new ColorDrawable(context.themeUtil().res.colorSelected)); - background.addState(new int[]{android.R.attr.state_checked, android.R.attr.state_selected}, new ColorDrawable(context.themeUtil().res.colorSelected)); - background.addState(new int[0], UIUtils.getSelectableBackground(itemView.getContext())); } @LayoutRes @@ -104,8 +94,6 @@ public class BufferViewHolder extends ChildViewHolder { itemView.setOnClickListener(v -> listener.onClick(buffer)); itemView.setOnLongClickListener(v -> longClickListener.onLongClick(buffer)); - itemView.setBackground(background); - id = buffer.getInfo().id; BufferInfo.Type type = buffer.getInfo().type; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/SlidingPanelHandler.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/SlidingPanelHandler.java index f1405818ee5d1fe847e65c08620ddf8369fef7a3..21e313ae291f75722f534b39bc70a2f00cf3a835 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/SlidingPanelHandler.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/SlidingPanelHandler.java @@ -34,6 +34,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ScrollView; import com.mikepenz.fastadapter.FastAdapter; import com.mikepenz.fastadapter.IItem; @@ -76,8 +77,12 @@ public class SlidingPanelHandler { AppCompatEditText chatline; @Bind(R.id.send) AppCompatImageButton send; + @Bind(R.id.chatline_scroller) + ScrollView chatlineScroller; private ItemAdapter<IItem> previousMessages; + private boolean expanded; + public SlidingPanelHandler(Activity activity, SlidingUpPanelLayout slidingLayout, AppContext context) { this.slidingLayout = slidingLayout; ButterKnife.bind(this, slidingLayout); @@ -90,6 +95,11 @@ public class SlidingPanelHandler { setupHistoryFakeData(); bindListener(); + + chatlineScroller.setOnTouchListener((v, event) -> { + chatlineScroller.requestDisallowInterceptTouchEvent(expanded); + return true; + }); } private void setupFormattingMenu(Activity activity) { @@ -254,6 +264,8 @@ public class SlidingPanelHandler { chatline.getLayoutParams().height = themeUtil.res.actionBarSize; } chatline.setSingleLine(!expanded); + this.expanded = expanded; + chatlineScroller.setSmoothScrollingEnabled(false); chatline.setSelection(selectionStart, selectionEnd); } diff --git a/app/src/main/java/de/kuschku/util/CompatibilityUtils.java b/app/src/main/java/de/kuschku/util/CompatibilityUtils.java index ecb049d4540805ec97d1a6632a734a7543066468..79a8b942b86a75c1253cf55712951e4d656e6e72 100644 --- a/app/src/main/java/de/kuschku/util/CompatibilityUtils.java +++ b/app/src/main/java/de/kuschku/util/CompatibilityUtils.java @@ -21,6 +21,7 @@ package de.kuschku.util; +import android.content.Context; import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -102,4 +103,13 @@ public class CompatibilityUtils { } return chars; } + + public static int getStatusBarHeight(Context context) { + int result = 0; + int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (resourceId > 0) { + result = context.getResources().getDimensionPixelSize(resourceId); + } + return result; + } } diff --git a/app/src/main/res/drawable/badge.xml b/app/src/main/res/drawable/badge.xml index de1160f36b399ab3d734ece50d11efe302c6ae6f..ce6e0a023e4b5e5103ae8032c75ab30dedda71c8 100644 --- a/app/src/main/res/drawable/badge.xml +++ b/app/src/main/res/drawable/badge.xml @@ -22,9 +22,9 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid/> <padding - android:bottom="10dp" - android:left="10dp" - android:right="10dp" - android:top="10dp"/> - <corners android:radius="6dp"/> + android:bottom="4dp" + android:left="8dp" + android:right="8dp" + android:top="4dp"/> + <corners android:radius="16dp"/> </shape> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3a8dbc9c090e4dede4650260b41625f163adbb51..423eaa69066eff1a229b080940c88d694f8977f7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -27,6 +27,7 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" tools:context=".ui.chat.MainActivity"> <LinearLayout @@ -44,25 +45,30 @@ </LinearLayout> <android.support.design.widget.NavigationView - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_gravity="end"> + android:layout_gravity="end" + android:fitsSystemWindows="true"> <android.support.v7.widget.RecyclerView android:id="@+id/nickList" android:layout_width="match_parent" - android:layout_height="match_parent"/> + android:layout_height="match_parent" + android:clipToPadding="false" + android:maxWidth="320dp"/> </android.support.design.widget.NavigationView> <android.support.design.widget.NavigationView - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_gravity="start"> + android:layout_gravity="start" + android:fitsSystemWindows="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" + android:maxWidth="320dp" android:orientation="vertical"> <android.support.design.widget.AppBarLayout @@ -72,6 +78,11 @@ android:layout_height="wrap_content" android:theme="?attr/actionBarTheme"> + <View + android:id="@+id/statusBarBackground" + android:layout_width="match_parent" + android:layout_height="0dip"/> + <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/widget_buffer.xml b/app/src/main/res/layout/widget_buffer.xml index a1dc8d429c243ac0aaf4399b349dfd1388bb91eb..c0725f0c470a7c368d57ebdcd186dea1db6933d5 100644 --- a/app/src/main/res/layout/widget_buffer.xml +++ b/app/src/main/res/layout/widget_buffer.xml @@ -19,85 +19,95 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="@dimen/material_drawer_item_secondary" - android:clickable="true" - android:orientation="horizontal" - android:paddingEnd="@dimen/material_drawer_vertical_padding" - android:paddingLeft="@dimen/material_drawer_vertical_padding" - android:paddingRight="@dimen/material_drawer_vertical_padding" - android:paddingStart="@dimen/material_drawer_vertical_padding"> +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?selectableItemBackground" + android:clickable="true"> - <ImageView - android:id="@+id/material_drawer_icon" - android:layout_width="@dimen/material_drawer_item_secondary_icon" + <LinearLayout + android:layout_width="match_parent" android:layout_height="@dimen/material_drawer_item_secondary" - android:layout_gravity="center_vertical" - android:paddingBottom="@dimen/material_drawer_item_secondary_icon_padding" - android:paddingEnd="@dimen/material_drawer_item_secondary_icon_padding_right" - android:paddingLeft="0dp" - android:paddingRight="@dimen/material_drawer_item_secondary_icon_padding_right" - android:paddingStart="0dp" - android:paddingTop="@dimen/material_drawer_item_secondary_icon_padding"/> + android:orientation="horizontal" + android:paddingEnd="@dimen/material_drawer_vertical_padding" + android:paddingLeft="@dimen/material_drawer_vertical_padding" + android:paddingRight="@dimen/material_drawer_vertical_padding" + android:paddingStart="@dimen/material_drawer_vertical_padding"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="match_parent" - android:layout_weight="1" - android:gravity="center_vertical|start" - android:orientation="vertical"> + <FrameLayout + android:layout_width="56dp" + android:layout_height="match_parent"> - <TextView - android:id="@+id/material_drawer_name" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" - android:gravity="center_vertical|start" - android:lines="1" - android:singleLine="true" - android:textSize="@dimen/material_drawer_item_secondary_text" - tools:text="Some secondary text"/> + <ImageView + android:id="@+id/material_drawer_icon" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_gravity="center_vertical|start" + android:layout_marginBottom="@dimen/material_drawer_item_secondary_icon_padding" + android:layout_marginTop="@dimen/material_drawer_item_secondary_icon_padding"/> - <TextView - android:id="@+id/material_drawer_description" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:fontFamily="sans-serif" + </FrameLayout> + + <LinearLayout + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" android:gravity="center_vertical|start" - android:lines="1" - android:singleLine="true" - android:textSize="@dimen/material_drawer_item_secondary_description" - tools:text="Some drawer text"/> + android:orientation="vertical"> - </LinearLayout> + <TextView + android:id="@+id/material_drawer_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:fontFamily="sans-serif-medium" + android:gravity="center_vertical|start" + android:lines="1" + android:singleLine="true" + android:textSize="@dimen/material_drawer_item_secondary_text" + tools:text="Some secondary text"/> - <LinearLayout - android:id="@+id/material_drawer_badge_container" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:background="@drawable/badge" - android:gravity="center" - android:padding="6dp"> + <TextView + android:id="@+id/material_drawer_description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:fontFamily="sans-serif" + android:gravity="center_vertical|start" + android:lines="1" + android:singleLine="true" + android:textSize="@dimen/material_drawer_item_secondary_description" + tools:text="Some drawer text"/> + + </LinearLayout> - <TextView - android:id="@+id/material_drawer_badge" - android:layout_width="match_parent" + <LinearLayout + android:id="@+id/material_drawer_badge_container" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" - android:fontFamily="sans-serif" + android:layout_gravity="center_vertical" + android:background="@drawable/badge" android:gravity="center" - android:lines="1" - android:minWidth="20dp" - android:paddingLeft="1dp" - android:paddingRight="1dp" - android:singleLine="true" - android:textColor="@color/md_white_1000" - android:textSize="@dimen/material_drawer_item_secondary_text" - tools:text="99+"/> + android:padding="6dp"> + + <TextView + android:id="@+id/material_drawer_badge" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:fontFamily="sans-serif" + android:gravity="center" + android:lines="1" + android:minWidth="20dp" + android:paddingLeft="1dp" + android:paddingRight="1dp" + android:singleLine="true" + android:textColor="@color/md_white_1000" + android:textSize="@dimen/material_drawer_item_secondary_text" + tools:text="99+"/> + + </LinearLayout> </LinearLayout> -</LinearLayout> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/widget_core_account.xml b/app/src/main/res/layout/widget_core_account.xml index c02778e3a3356a4c7f1bd6908857e8c85a5afc8e..eed51d830d4ec421ab8a2e22b728869bfb12bea3 100644 --- a/app/src/main/res/layout/widget_core_account.xml +++ b/app/src/main/res/layout/widget_core_account.xml @@ -20,12 +20,14 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="@dimen/material_drawer_item_profile" - android:background="?attr/selectableItemBackground" - android:clickable="true" - android:orientation="horizontal"> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="@dimen/material_drawer_item_profile" + android:background="?attr/selectableItemBackground" + android:clickable="true" + android:orientation="horizontal"> <android.support.v7.widget.AppCompatRadioButton android:id="@+id/account_select" @@ -70,6 +72,6 @@ android:layout_height="@dimen/material_drawer_item_profile_icon_width" android:layout_gravity="center_vertical" android:background="?attr/selectableItemBackgroundBorderless" - android:src="@drawable/ic_delete" - android:tint="?attr/colorFill"/> + android:tint="?attr/colorFill" + app:srcCompat="@drawable/ic_delete"/> </LinearLayout> diff --git a/app/src/main/res/layout/widget_core_account_add.xml b/app/src/main/res/layout/widget_core_account_add.xml index f82cef8a67336e3edfb64d98851d7b92cb9749ef..bef572b71cd9e734be45c5cd87938c937564cf89 100644 --- a/app/src/main/res/layout/widget_core_account_add.xml +++ b/app/src/main/res/layout/widget_core_account_add.xml @@ -20,16 +20,17 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="@dimen/material_drawer_item_profile" - android:background="?attr/selectableItemBackground" - android:orientation="horizontal" - android:paddingEnd="@dimen/material_drawer_vertical_padding" - android:paddingLeft="@dimen/material_drawer_vertical_padding" - android:paddingRight="@dimen/material_drawer_vertical_padding" - android:paddingStart="@dimen/material_drawer_vertical_padding"> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="@dimen/material_drawer_item_profile" + android:background="?attr/selectableItemBackground" + android:orientation="horizontal" + android:paddingEnd="@dimen/material_drawer_vertical_padding" + android:paddingLeft="@dimen/material_drawer_vertical_padding" + android:paddingRight="@dimen/material_drawer_vertical_padding" + android:paddingStart="@dimen/material_drawer_vertical_padding"> <LinearLayout android:layout_width="@dimen/material_drawer_item_profile_icon_width" diff --git a/app/src/main/res/layout/widget_editor.xml b/app/src/main/res/layout/widget_editor.xml index a50f4a37a799e28d2c9e9d110621cf590bc6f3e9..53b6ec4206b08ae8fb5a37fced90596c1900373a 100644 --- a/app/src/main/res/layout/widget_editor.xml +++ b/app/src/main/res/layout/widget_editor.xml @@ -20,12 +20,13 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - tools:showIn="@layout/widget_slider"> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:showIn="@layout/widget_slider"> <ScrollView android:id="@+id/chatline_scroller" @@ -46,10 +47,10 @@ android:gravity="top" android:hint="@string/labelPlaceholder" android:inputType="textCapSentences|textShortMessage|textAutoCorrect" - android:paddingBottom="17dp" + android:paddingBottom="@dimen/chatlinePaddingVertical" android:paddingLeft="20dp" android:paddingRight="20dp" - android:paddingTop="17dp" + android:paddingTop="@dimen/chatlinePaddingVertical" android:textColor="?attr/colorForeground" android:textSize="16sp"/> @@ -58,7 +59,7 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/send" style="?attr/buttonStyleSmall" - android:layout_width="56dp" + android:layout_width="?attr/actionBarSize" android:layout_height="?attr/actionBarSize" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" @@ -67,9 +68,9 @@ android:background="?attr/selectableItemBackgroundBorderless" android:padding="12dp" android:scaleType="fitXY" - android:theme="@style/RippleOverlay" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_send"/> + app:srcCompat="@drawable/ic_send" + app:theme="@style/RippleOverlay"/> <android.support.design.widget.AppBarLayout android:id="@+id/formatting_toolbar_container" diff --git a/app/src/main/res/layout/widget_identitynick.xml b/app/src/main/res/layout/widget_identitynick.xml index 0ca338914e909485aa0a8453d5f1c1fa23ea9639..a11d229a10cfd5c8881f82aa339c562862aaf5d9 100644 --- a/app/src/main/res/layout/widget_identitynick.xml +++ b/app/src/main/res/layout/widget_identitynick.xml @@ -20,22 +20,24 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="56dp" - android:background="?selectableItemBackground" - android:clickable="true" - android:orientation="horizontal" - android:paddingLeft="?listPreferredItemPaddingLeft" - android:paddingRight="?listPreferredItemPaddingRight"> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="56dp" + android:background="?selectableItemBackground" + android:clickable="true" + android:orientation="horizontal" + android:paddingLeft="?listPreferredItemPaddingLeft" + android:paddingRight="?listPreferredItemPaddingRight"> <ImageView android:id="@+id/drag_handle" android:layout_width="24dp" android:layout_height="24dp" android:layout_gravity="center_vertical" - android:src="@drawable/ic_reorder" - android:tint="?attr/colorFill"/> + android:tint="?attr/colorFill" + app:srcCompat="@drawable/ic_reorder"/> <TextView android:id="@+id/text" diff --git a/app/src/main/res/layout/widget_networkserver.xml b/app/src/main/res/layout/widget_networkserver.xml index 05321aa97052de9e39c626f29527249457ce0e1b..1102869b2af8b1a50d4735789fb9071255319b22 100644 --- a/app/src/main/res/layout/widget_networkserver.xml +++ b/app/src/main/res/layout/widget_networkserver.xml @@ -20,22 +20,24 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="56dp" - android:background="?selectableItemBackground" - android:clickable="true" - android:orientation="horizontal" - android:paddingLeft="?listPreferredItemPaddingLeft" - android:paddingRight="?listPreferredItemPaddingRight"> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="56dp" + android:background="?selectableItemBackground" + android:clickable="true" + android:orientation="horizontal" + android:paddingLeft="?listPreferredItemPaddingLeft" + android:paddingRight="?listPreferredItemPaddingRight"> <ImageView android:id="@+id/lock" android:layout_width="24dp" android:layout_height="24dp" android:layout_gravity="center_vertical" - android:src="@drawable/ic_lock" - android:tint="?colorFill"/> + android:tint="?colorFill" + app:srcCompat="@drawable/ic_lock"/> <TextView android:id="@+id/text" diff --git a/app/src/main/res/layout/widget_nick.xml b/app/src/main/res/layout/widget_nick.xml index fe90801c84442da86e2689bc43921e6cef6c54eb..5fe59b912eadd91561dbe248189db09d4598a5d6 100644 --- a/app/src/main/res/layout/widget_nick.xml +++ b/app/src/main/res/layout/widget_nick.xml @@ -33,7 +33,7 @@ <TextView android:id="@+id/mode" android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="8dp" android:layout_marginTop="8dp" @@ -42,7 +42,9 @@ android:gravity="center" android:minWidth="40dp" android:textColor="?colorBackground" - tools:text="\@"/> + android:textStyle="bold" + tools:text="\@" + /> <LinearLayout android:layout_width="0dp" diff --git a/app/src/main/res/layout/widget_slider.xml b/app/src/main/res/layout/widget_slider.xml index 1a8f0246a273abf6b5ff40cafb8182e7ba7dc370..3320c668d008ed011e69667c665e6bff55871197 100644 --- a/app/src/main/res/layout/widget_slider.xml +++ b/app/src/main/res/layout/widget_slider.xml @@ -20,22 +20,23 @@ ~ with this program. If not, see <http://www.gnu.org/licenses/>. --> -<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/sliding_layout_history" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:background="?attr/colorBackgroundCard" - android:clickable="false" - android:focusable="true" - android:gravity="bottom" - app:umanoFadeColor="?attr/colorBackground" - app:umanoOverlay="true" - app:umanoPanelHeight="0dip" - app:umanoScrollableView="@+id/msg_history" - app:umanoShadowHeight="0.0dip" - tools:showIn="@layout/activity_main"> +<com.sothree.slidinguppanel.SlidingUpPanelLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/sliding_layout_history" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:background="?attr/colorBackgroundCard" + android:clickable="false" + android:focusable="true" + android:gravity="bottom" + app:umanoFadeColor="?attr/colorBackground" + app:umanoOverlay="true" + app:umanoPanelHeight="0dip" + app:umanoScrollableView="@+id/msg_history" + app:umanoShadowHeight="0.0dip" + tools:showIn="@layout/activity_main"> <include layout="@layout/widget_editor"/> @@ -74,7 +75,11 @@ android:id="@+id/msg_history" android:layout_width="fill_parent" android:layout_height="fill_parent"/> + </LinearLayout> + </android.support.v7.widget.CardView> + </FrameLayout> + </com.sothree.slidinguppanel.SlidingUpPanelLayout> diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..a68666e15e36d08de1a31d62d0a786cf2884fa31 --- /dev/null +++ b/app/src/main/res/values-land/dimens.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ QuasselDroid - Quassel client for Android + ~ Copyright (C) 2016 Janne Koschinski + ~ Copyright (C) 2016 Ken Børge Viktil + ~ Copyright (C) 2016 Magnus Fjell + ~ Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + ~ + ~ This program is free software: you can redistribute it and/or modify it + ~ under the terms of the GNU General Public License as published by the Free + ~ Software Foundation, either version 3 of the License, or (at your option) + ~ any later version. + ~ + ~ This program is distributed in the hope that it will be useful, + ~ but WITHOUT ANY WARRANTY; without even the implied warranty of + ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ~ 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 <http://www.gnu.org/licenses/>. + --> + +<resources> + <dimen name="chatlinePaddingVertical">13dp</dimen> +</resources> \ No newline at end of file diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml index 2a1754ece4930cb763f9e14d275f7bced2c8388f..3b53a5e6286babc209b5339d32d53e08cff58ed2 100644 --- a/app/src/main/res/values-sw600dp/dimens.xml +++ b/app/src/main/res/values-sw600dp/dimens.xml @@ -22,4 +22,5 @@ <resources> <dimen name="action_bar_default_padding_start_material">8dp</dimen> + <dimen name="chatlinePaddingVertical">17dp</dimen> </resources> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 8a80003cd36735d23307662c88ea9f5117132655..0199718e170c554236fe51194b66f3460f561799 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -28,4 +28,5 @@ <dimen name="message_vertical">2dp</dimen> <dimen name="action_bar_default_padding_start_material">0dp</dimen> + <dimen name="chatlinePaddingVertical">17dp</dimen> </resources> diff --git a/app/src/main/res/xml/pref_appearance.xml b/app/src/main/res/xml/pref_appearance.xml index 7668ae01b866e5b44015e916df5a316be8a0db32..0462541af818e919223baec951880c9c9bb89b06 100644 --- a/app/src/main/res/xml/pref_appearance.xml +++ b/app/src/main/res/xml/pref_appearance.xml @@ -28,25 +28,25 @@ android:key="@string/preference_theme" android:title="@string/preference_theme_title"/> - <SwitchPreference + <com.jenzz.materialpreference.CheckBoxPreference android:key="@string/preference_colors" android:summaryOff="@string/preference_colors_summary_off" android:summaryOn="@string/preference_colors_summary_on" android:title="@string/preference_colors_title"/> - <SwitchPreference + <com.jenzz.materialpreference.CheckBoxPreference android:key="@string/preference_hostmask" android:summaryOff="@string/preference_hostmask_summary_off" android:summaryOn="@string/preference_hostmask_summary_on" android:title="@string/preference_hostmask_title"/> - <SwitchPreference + <com.jenzz.materialpreference.CheckBoxPreference android:key="@string/preference_lag" android:summaryOff="@string/preference_lag_summary_off" android:summaryOn="@string/preference_lag_summary_on" android:title="@string/preference_lag_title"/> - <SwitchPreference + <com.jenzz.materialpreference.CheckBoxPreference android:key="@string/preference_brackets" android:summaryOff="@string/preference_brackets_summary_off" android:summaryOn="@string/preference_brackets_summary_on"