From d7400c3f76244cd0ae63ba595cf47c59ff57f718 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Fri, 9 Oct 2020 10:42:23 +0200 Subject: [PATCH 1/3] Add branding support for - hide provider - hide auth - multi account support - enforce domain Signed-off-by: tobiasKaminsky --- .../nextcloud/talk/activities/MainActivity.kt | 29 +++++--- .../ServerSelectionController.java | 31 ++++++--- .../talk/controllers/SettingsController.java | 66 ++++++++++++------- app/src/main/res/values/setup.xml | 6 ++ 4 files changed, 91 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt index 00a7f618d..75197b985 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -25,6 +25,7 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle +import android.text.TextUtils import android.view.ViewGroup import androidx.annotation.RequiresApi import autodagger.AutoInjector @@ -38,10 +39,7 @@ import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler import com.google.android.material.appbar.MaterialToolbar import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication -import com.nextcloud.talk.controllers.CallNotificationController -import com.nextcloud.talk.controllers.ConversationsListController -import com.nextcloud.talk.controllers.LockedController -import com.nextcloud.talk.controllers.ServerSelectionController +import com.nextcloud.talk.controllers.* import com.nextcloud.talk.controllers.base.providers.ActionBarProvider import com.nextcloud.talk.utils.ConductorRemapping import com.nextcloud.talk.utils.SecurityUtils @@ -102,16 +100,29 @@ class MainActivity : BaseActivity(), ActionBarProvider { router!!.setRoot(RouterTransaction.with(ConversationsListController()) .pushChangeHandler(HorizontalChangeHandler()) .popChangeHandler(HorizontalChangeHandler())) + } else { + if (!TextUtils.isEmpty(resources.getString(R.string.weblogin_url))) { + router!!.pushController(RouterTransaction.with( + WebViewLoginController(resources.getString(R.string.weblogin_url), false)) + .pushChangeHandler(HorizontalChangeHandler()) + .popChangeHandler(HorizontalChangeHandler())) + } else { + router!!.setRoot(RouterTransaction.with(ServerSelectionController()) + .pushChangeHandler(HorizontalChangeHandler()) + .popChangeHandler(HorizontalChangeHandler())) + } + } + } else { + if (!TextUtils.isEmpty(resources.getString(R.string.weblogin_url))) { + router!!.pushController(RouterTransaction.with( + WebViewLoginController(resources.getString(R.string.weblogin_url), false)) + .pushChangeHandler(HorizontalChangeHandler()) + .popChangeHandler(HorizontalChangeHandler())) } else { router!!.setRoot(RouterTransaction.with(ServerSelectionController()) .pushChangeHandler(HorizontalChangeHandler()) .popChangeHandler(HorizontalChangeHandler())) } - } else { - router!!.setRoot(RouterTransaction.with(ServerSelectionController()) - .pushChangeHandler(HorizontalChangeHandler()) - .popChangeHandler(HorizontalChangeHandler())) - } } } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java b/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java index 1f71e4101..900dc809e 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java @@ -35,10 +35,7 @@ import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.ProgressBar; import android.widget.TextView; -import androidx.annotation.NonNull; -import autodagger.AutoInjector; -import butterknife.BindView; -import butterknife.OnClick; + import com.bluelinelabs.conductor.RouterTransaction; import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler; import com.nextcloud.talk.R; @@ -51,15 +48,21 @@ import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder; + +import java.security.cert.CertificateException; + +import javax.inject.Inject; + +import androidx.annotation.NonNull; +import autodagger.AutoInjector; +import butterknife.BindView; +import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import studio.carbonylgroup.textfieldboxes.ExtendedEditText; import studio.carbonylgroup.textfieldboxes.TextFieldBoxes; -import javax.inject.Inject; -import java.security.cert.CertificateException; - @AutoInjector(NextcloudTalkApplication.class) public class ServerSelectionController extends BaseController { @@ -128,8 +131,13 @@ public class ServerSelectionController extends BaseController { textFieldBoxes.getEndIconImageButton().setVisibility(View.VISIBLE); textFieldBoxes.getEndIconImageButton().setOnClickListener(view1 -> checkServerAndProceed()); - if (TextUtils.isEmpty(getResources().getString(R.string.nc_providers_url)) && (TextUtils.isEmpty(getResources - ().getString(R.string.nc_import_account_type)))) { + if (getResources().getBoolean(R.bool.hide_auth_cert)) { + certTextView.setVisibility(View.GONE); + } + + if (getResources().getBoolean(R.bool.hide_provider) || + TextUtils.isEmpty(getResources().getString(R.string.nc_providers_url)) && + (TextUtils.isEmpty(getResources().getString(R.string.nc_import_account_type)))) { providersTextView.setVisibility(View.INVISIBLE); } else { if ((TextUtils.isEmpty(getResources @@ -178,6 +186,11 @@ public class ServerSelectionController extends BaseController { } serverEntry.requestFocus(); + + if (!TextUtils.isEmpty(getResources().getString(R.string.weblogin_url))) { + serverEntry.setText(getResources().getString(R.string.weblogin_url)); + checkServerAndProceed(); + } serverEntry.addTextChangedListener(new TextWatcher() { @Override diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java index ceaf9cb64..9b2c31509 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java @@ -37,15 +37,7 @@ import android.view.ViewGroup; import android.view.WindowManager; import android.widget.Checkable; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.core.view.ViewCompat; -import androidx.emoji.widget.EmojiTextView; -import androidx.work.OneTimeWorkRequest; -import androidx.work.WorkManager; -import autodagger.AutoInjector; -import butterknife.BindView; -import butterknife.OnClick; + import com.bluelinelabs.conductor.RouterTransaction; import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler; import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler; @@ -61,7 +53,11 @@ import com.nextcloud.talk.controllers.base.BaseController; import com.nextcloud.talk.jobs.AccountRemovalWorker; import com.nextcloud.talk.models.RingtoneSettings; import com.nextcloud.talk.models.database.UserEntity; -import com.nextcloud.talk.utils.*; +import com.nextcloud.talk.utils.ApiUtils; +import com.nextcloud.talk.utils.DisplayUtils; +import com.nextcloud.talk.utils.DoNotDisturbUtils; +import com.nextcloud.talk.utils.LoggingUtils; +import com.nextcloud.talk.utils.SecurityUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; import com.nextcloud.talk.utils.preferences.AppPreferences; @@ -69,18 +65,38 @@ import com.nextcloud.talk.utils.preferences.MagicUserInputModule; import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder; import com.yarolegovich.lovelydialog.LovelySaveStateHandler; import com.yarolegovich.lovelydialog.LovelyStandardDialog; -import com.yarolegovich.mp.*; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener; -import org.greenrobot.eventbus.EventBus; +import com.yarolegovich.mp.MaterialChoicePreference; +import com.yarolegovich.mp.MaterialEditTextPreference; +import com.yarolegovich.mp.MaterialPreferenceCategory; +import com.yarolegovich.mp.MaterialPreferenceScreen; +import com.yarolegovich.mp.MaterialStandardPreference; +import com.yarolegovich.mp.MaterialSwitchPreference; + +import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener; -import javax.inject.Inject; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; +import java.util.Objects; + +import javax.inject.Inject; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.view.ViewCompat; +import androidx.emoji.widget.EmojiTextView; +import androidx.work.OneTimeWorkRequest; +import androidx.work.WorkManager; +import autodagger.AutoInjector; +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; @AutoInjector(NextcloudTalkApplication.class) public class SettingsController extends BaseController { @@ -264,11 +280,15 @@ public class SettingsController extends BaseController { .popChangeHandler(new HorizontalChangeHandler())); }); - addAccountButton.addPreferenceClickListener(view15 -> { - getRouter().pushController(RouterTransaction.with(new - ServerSelectionController()).pushChangeHandler(new VerticalChangeHandler()) - .popChangeHandler(new VerticalChangeHandler())); - }); + if (getResources().getBoolean(R.bool.multiaccount_support)) { + addAccountButton.addPreferenceClickListener(view15 -> { + getRouter().pushController(RouterTransaction.with(new + ServerSelectionController()).pushChangeHandler(new VerticalChangeHandler()) + .popChangeHandler(new VerticalChangeHandler())); + }); + } else { + addAccountButton.setVisibility(View.GONE); + } switchAccountButton.addPreferenceClickListener(view16 -> { getRouter().pushController(RouterTransaction.with(new diff --git a/app/src/main/res/values/setup.xml b/app/src/main/res/values/setup.xml index 8bb13c6f3..137ae3611 100644 --- a/app/src/main/res/values/setup.xml +++ b/app/src/main/res/values/setup.xml @@ -30,6 +30,12 @@ https://push-notifications.nextcloud.com + + false + false + true + + https://nextcloud.com/privacy/ https://www.gnu.org/licenses/gpl-3.0.en.html From 0b7e4c09f496a03ff6803b383c096120bb9162cf Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Mon, 12 Oct 2020 16:14:52 +0200 Subject: [PATCH 2/3] streamline colors Signed-off-by: tobiasKaminsky --- .../com/nextcloud/talk/activities/BaseActivity.kt | 2 +- .../messages/MagicIncomingTextMessageViewHolder.kt | 6 +++--- .../MagicOutcomingTextMessageViewHolder.kt | 10 +++++----- .../messages/MagicSystemMessageViewHolder.java | 7 +++++-- app/src/main/res/drawable/accent_circle.xml | 2 +- app/src/main/res/layout/controller_chat.xml | 4 ++-- .../res/layout/controller_conversations_rv.xml | 1 + .../res/layout/controller_server_selection.xml | 6 ++++-- .../layout/item_custom_incoming_text_message.xml | 2 +- app/src/main/res/layout/item_system_message.xml | 2 +- .../rv_item_conversation_with_last_message.xml | 4 ++-- app/src/main/res/layout/rv_item_mention.xml | 2 +- app/src/main/res/values-night/colors.xml | 10 +++------- app/src/main/res/values/colors.xml | 14 +++----------- app/src/main/res/values/styles.xml | 6 +++--- app/src/main/res/xml/chip_others.xml | 2 +- app/src/main/res/xml/chip_you.xml | 2 +- 17 files changed, 38 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt index 006adc33d..f55f66caa 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt @@ -108,7 +108,7 @@ open class BaseActivity : AppCompatActivity() { LovelyStandardDialog(this) .setTopColorRes(R.color.nc_darkRed) .setNegativeButtonColorRes(R.color.nc_darkRed) - .setPositiveButtonColorRes(R.color.colorPrimaryDark) + .setPositiveButtonColorRes(R.color.colorPrimary) .setIcon(R.drawable.ic_security_white_24dp) .setTitle(R.string.nc_certificate_dialog_title) .setMessage(dialogText) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt index 72b39267e..11301ffcf 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt @@ -247,14 +247,14 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders ?: context!!.getText(R.string.nc_nick_guest) quotedMessage?.text = parentChatMessage.text - quotedUserName?.setTextColor(context!!.resources.getColor(R.color.colorPrimary)) + quotedUserName?.setTextColor(context!!.resources.getColor(R.color.textColorMaxContrast)) quotedMessageTime?.text = DateFormatter.format(parentChatMessage.createdAt, DateFormatter.Template.TIME) quotedMessageTime?.setTextColor(context!!.resources.getColor(R.color.warm_grey_four)) - quoteColoredView?.setBackgroundResource(R.color.colorPrimary) + quoteColoredView?.setBackgroundResource(R.color.textColorMaxContrast) quotedChatMessageView?.visibility = View.VISIBLE } ?: run { quotedChatMessageView?.visibility = View.GONE } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt index 27266ffe3..08f77b2c1 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt @@ -133,16 +133,16 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage val resources = sharedApplication!!.resources if (message.isGrouped) { val bubbleDrawable = getMessageSelector( - resources.getColor(R.color.bg_message_list_outcoming_bubble), + resources.getColor(R.color.colorPrimary), resources.getColor(R.color.transparent), - resources.getColor(R.color.bg_message_list_outcoming_bubble), + resources.getColor(R.color.colorPrimary), R.drawable.shape_grouped_outcoming_message) ViewCompat.setBackground(bubble, bubbleDrawable) } else { val bubbleDrawable = getMessageSelector( - resources.getColor(R.color.bg_message_list_outcoming_bubble), + resources.getColor(R.color.colorPrimary), resources.getColor(R.color.transparent), - resources.getColor(R.color.bg_message_list_outcoming_bubble), + resources.getColor(R.color.colorPrimary), R.drawable.shape_outcoming_message) ViewCompat.setBackground(bubble, bubbleDrawable) } @@ -187,4 +187,4 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage ButterKnife.bind(this, itemView) this.realView = itemView } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java index 2e688c841..301a7397d 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java @@ -26,7 +26,7 @@ import android.graphics.drawable.Drawable; import android.text.Spannable; import android.text.SpannableString; import android.view.View; -import androidx.core.view.ViewCompat; + import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.models.json.chat.ChatMessage; @@ -35,7 +35,10 @@ import com.nextcloud.talk.utils.preferences.AppPreferences; import com.stfalcon.chatkit.messages.MessageHolders; import java.util.Map; + import javax.inject.Inject; + +import androidx.core.view.ViewCompat; import autodagger.AutoInjector; @AutoInjector(NextcloudTalkApplication.class) @@ -63,7 +66,7 @@ public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMes pressedColor = normalColor; - mentionColor = resources.getColor(R.color.nc_author_text); + mentionColor = resources.getColor(R.color.textColorMaxContrast); Drawable bubbleDrawable = DisplayUtils.getMessageSelector(normalColor, resources.getColor(R.color.transparent), pressedColor, diff --git a/app/src/main/res/drawable/accent_circle.xml b/app/src/main/res/drawable/accent_circle.xml index 1a0e70aca..3c6519214 100644 --- a/app/src/main/res/drawable/accent_circle.xml +++ b/app/src/main/res/drawable/accent_circle.xml @@ -22,5 +22,5 @@ + android:color="@color/colorPrimary"/> diff --git a/app/src/main/res/layout/controller_chat.xml b/app/src/main/res/layout/controller_chat.xml index 024ed7f13..3e1c2c86a 100644 --- a/app/src/main/res/layout/controller_chat.xml +++ b/app/src/main/res/layout/controller_chat.xml @@ -108,8 +108,8 @@ app:outcomingBubblePaddingLeft="@dimen/message_bubble_corners_padding" app:outcomingBubblePaddingRight="@dimen/message_bubble_corners_padding" app:outcomingBubblePaddingTop="@dimen/message_bubble_corners_padding" - app:outcomingDefaultBubbleColor="@color/bg_message_list_outcoming_bubble" - app:outcomingDefaultBubblePressedColor="@color/bg_message_list_outcoming_bubble" + app:outcomingDefaultBubbleColor="@color/colorPrimary" + app:outcomingDefaultBubblePressedColor="@color/colorPrimary" app:outcomingDefaultBubbleSelectedColor="@color/transparent" app:outcomingImageTimeTextSize="12sp" app:outcomingTextColor="@color/nc_outcoming_text_default" diff --git a/app/src/main/res/layout/controller_conversations_rv.xml b/app/src/main/res/layout/controller_conversations_rv.xml index 9c0cd7f6c..9397b7948 100644 --- a/app/src/main/res/layout/controller_conversations_rv.xml +++ b/app/src/main/res/layout/controller_conversations_rv.xml @@ -91,6 +91,7 @@ android:layout_gravity="bottom|end" android:backgroundTint="@color/colorPrimary" android:layout_margin="16dp" + app:borderWidth="0dp" app:tint="@color/white" app:srcCompat="@drawable/ic_add_white_24px"/> diff --git a/app/src/main/res/layout/controller_server_selection.xml b/app/src/main/res/layout/controller_server_selection.xml index 11b22d549..7e0822bbc 100644 --- a/app/src/main/res/layout/controller_server_selection.xml +++ b/app/src/main/res/layout/controller_server_selection.xml @@ -65,7 +65,8 @@ android:text="@string/nc_get_from_provider" android:textAlignment="center" android:textAllCaps="true" - android:textColor="@color/nc_light_blue_color" /> + android:alpha="0.5" + android:textColor="@color/textColorOnPrimaryBackground" /> + android:alpha="0.5" + android:textColor="@color/textColorOnPrimaryBackground" /> + android:textColor="@color/textColorMaxContrast" /> diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index adbbabf07..e343fa4f7 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -22,23 +22,19 @@ --> - #9FBDCC - + #ffffff #222222 #222222 #D8D8D8 - #65A7CA - #0083C9 - #6F6F6F @android:color/holo_purple #222222 #484848 - #003F62 + #8c8c8c #313031 #15FFFFFF - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b40654222..e93c0d118 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,8 +21,7 @@ #0082C9 - #006AA3 - #007CC2 + #ffffff #FFFFFF @@ -30,9 +29,7 @@ #37505D - #37505D - @color/warm_grey_two - @color/warm_grey_four + #000000 #FFFFFF #C98879 @@ -41,12 +38,12 @@ #D32F2F #006400 @color/per70white - #7FC0E3 #E8E8E8 #757575 #D5D5D5 #E9FFFFFF #111111 + #767676 #7Fffffff @@ -59,14 +56,9 @@ #FFFFFF @color/white60 - #0083C9 - @color/white #333333 - #EFEFEF - @color/colorPrimary - #65A7CA #46ffffff diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5122e4efe..e40d24ebe 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -24,7 +24,7 @@