Compare commits
96
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
506f5c7597 | ||
|
|
38d3a40d7a | ||
|
|
44cb073de8 | ||
|
|
8a680e5429 | ||
|
|
16dbdc5ec3 | ||
|
|
4cece4566c | ||
|
|
2340cbbbb2 | ||
|
|
e00feded18 | ||
|
|
d7c5e88c00 | ||
|
|
7462d739f4 | ||
|
|
f1bbdeac45 | ||
|
|
178bdbf988 | ||
|
|
82a5d40a10 | ||
|
|
c888bd3f3c | ||
|
|
53f45f49c3 | ||
|
|
3c108c7520 | ||
|
|
11bce261ae | ||
|
|
5f8204c48e | ||
|
|
f6043ed413 | ||
|
|
5ab22cd5c4 | ||
|
|
ee20e461d2 | ||
|
|
9fa6513d4b | ||
|
|
e86c7b190a | ||
|
|
0b2c5dc578 | ||
|
|
55b569c057 | ||
|
|
02d6fb3b14 | ||
|
|
8ed21f8fa9 | ||
|
|
6c1a12b345 | ||
|
|
05f4462195 | ||
|
|
e4bb903391 | ||
|
|
5028fe9d7f | ||
|
|
9bca7a3598 | ||
|
|
dddb414c7d | ||
|
|
ad67bed400 | ||
|
|
5ffa2fac40 | ||
|
|
cca1bc6607 | ||
|
|
55f49d7d3a | ||
|
|
a24f8bef3d | ||
|
|
c41a0de1af | ||
|
|
d4c8b795fa | ||
|
|
47c219ad8c | ||
|
|
59b34ddf3e | ||
|
|
01f1e3993c | ||
|
|
c21cadad1d | ||
|
|
307d15ff24 | ||
|
|
5edebee51e | ||
|
|
3d936f4abd | ||
|
|
e725c05e9c | ||
|
|
5a8a33cebc | ||
|
|
da28a5feca | ||
|
|
a058e84ddb | ||
|
|
49ccf080ad | ||
|
|
176a9a89b6 | ||
|
|
40f907300d | ||
|
|
0219b14844 | ||
|
|
08acebd2c6 | ||
|
|
9bf0109c0d | ||
|
|
1f31ddd8d0 | ||
|
|
9540fb68dc | ||
|
|
432975f409 | ||
|
|
8b2acc764a | ||
|
|
f79ca38ef4 | ||
|
|
446cc973d6 | ||
|
|
a847d6a3eb | ||
|
|
67f9d9bbd9 | ||
|
|
2d49885572 | ||
|
|
a940674c6f | ||
|
|
7bbb073552 | ||
|
|
105d784b4a | ||
|
|
23eb0fef69 | ||
|
|
b9afb74a01 | ||
|
|
edfb68c946 | ||
|
|
66897e8e93 | ||
|
|
3b754b79e7 | ||
|
|
11fa834af7 | ||
|
|
d319c97430 | ||
|
|
744f9866da | ||
|
|
251746a57e | ||
|
|
b1bbfe7e1b | ||
|
|
7a911de8ca | ||
|
|
e5398cc1be | ||
|
|
b87f28f8bf | ||
|
|
5f8e16eb5d | ||
|
|
f83e1cc0b7 | ||
|
|
447bc94100 | ||
|
|
17cdb9c87b | ||
|
|
2cb35c17b2 | ||
|
|
0e0ca2a504 | ||
|
|
dca61fcd16 | ||
|
|
d0a198c6ad | ||
|
|
c1211123dd | ||
|
|
3a9d4ffa12 | ||
|
|
5855dc2abf | ||
|
|
ed3e6314d1 | ||
|
|
b83a36d41a | ||
|
|
9ee72b2c6b |
@@ -1,30 +1,42 @@
|
||||
# VTosters Lite
|
||||
О багах сообщать в issues, **просьба не создавать дубликаты и воспользоваться поиском**
|
||||
|
||||
### Пул Реквесты
|
||||
VTosters Lite - это модифицированный клиент ВКонтакте, основанный на версии 5.29
|
||||
|
||||
Скрипты и код далеки от **идеала** и поэтому мы всегда готовы к новым предложениям в **Pull Requests**
|
||||
О найденных багах сообщать в [issues](https://github.com/vtosters/lite/issues), просьба не плодить дубликаты, воспользуйтесь поиском перед созданием нового issue
|
||||
|
||||
### Компиляция
|
||||
## Разработка
|
||||
Мы всегда готовы к новым предложениям в [Pull Requests](https://github.com/vtosters/lite/pulls)
|
||||
|
||||
## Компиляция
|
||||
Весь декомпилированный код клиента находится в `/smali`
|
||||
|
||||
Весь исходный код написанный на Java находится в `/app`
|
||||
|
||||
Все необходимые скрипты для компиляции APK, его подписывании и не только находятся в `/scripts`
|
||||
|
||||
### Необходимые зависимости
|
||||
Требуется установленная **Java** >11 версии
|
||||
|
||||
Требуется установленная **Android Studio**
|
||||
|
||||
Весь декомпилированный код клиента находится в ```/smali```
|
||||
### Linux/macOS
|
||||
```
|
||||
./build.sh
|
||||
```
|
||||
|
||||
Весь исходный код написанный на Java находится в ```/app```
|
||||

|
||||
|
||||
Все необходимые скрипты для компиляции APK, его подписывании и не только находятся в ```/scripts```
|
||||
|
||||
Скрипт для Linux/Mac: ```./build.sh```
|
||||
### Windows
|
||||
```
|
||||
build.bat
|
||||
```
|
||||
|
||||
Скрипт для Windows: ```./build.bat```
|
||||

|
||||
|
||||

|
||||
|
||||
### Проверка версии коммита
|
||||
## Проверка версии коммита
|
||||
|
||||
С версии v0.0.4 доступна прямая проверка версии коммита внутри приложения
|
||||
С версии 0.0.4 доступна прямая проверка версии коммита внутри приложения.
|
||||
|
||||

|
||||
@@ -161,7 +161,7 @@ public final class R {
|
||||
public static final int language = 0x7f030059;
|
||||
public static final int lang_value = 0x7f03005a;
|
||||
public static final int start = 0x7f03005b;
|
||||
public static final int start_value = 0x7f03005c;
|
||||
public static final int start_values = 0x7f03005c;
|
||||
public static final int proxy = 0x7f03005d;
|
||||
public static final int proxy_value = 0x7f03005e;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package ru.vtosters.lite.dnr;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.vk.im.engine.models.dialogs.Dialog;
|
||||
import com.vk.im.ui.components.common.DialogAction;
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package ru.vtosters.lite.dnr;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.vk.core.util.ToastUtils;
|
||||
import com.vk.im.engine.commands.messages.SetUserActivityCmd;
|
||||
import com.vk.im.engine.models.dialogs.Dialog;
|
||||
|
||||
@@ -13,8 +13,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import ru.vtosters.lite.R;
|
||||
|
||||
public class VideoDownloader {
|
||||
public static void downloadVideo(VideoFile videoFile, Context context) {
|
||||
final List<String> list = new ArrayList<>();
|
||||
|
||||
@@ -16,8 +16,8 @@ import com.vtosters.lite.R;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.badmanners.DeviceInfoCollector;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
|
||||
public class Crashreporter {
|
||||
|
||||
@@ -9,14 +9,14 @@ import android.widget.Toast;
|
||||
import com.vk.dto.common.VerifyInfo;
|
||||
import com.vk.navigation.NavigatorKeys;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.MediaType;
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.widget.Toast;
|
||||
import androidx.exifinterface.media.ExifInterface;
|
||||
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
@@ -24,9 +25,6 @@ import java.util.regex.Pattern;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import ru.f0x1d.net.F0x1dRequest;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package ru.vtosters.lite.tgs;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.util.Log;
|
||||
|
||||
import com.aefyr.tsg.g2.TelegramStickersPack;
|
||||
import com.aefyr.tsg.g2.TelegramStickersService;
|
||||
|
||||
@@ -8,9 +8,9 @@ import android.content.Intent;
|
||||
|
||||
import com.vk.navigation.Navigator;
|
||||
|
||||
import ru.vtosters.lite.ui.fragments.InstallGMSFragment;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
import ru.vtosters.lite.ui.fragments.InstallGMSFragment;
|
||||
|
||||
public class InstallGMS {
|
||||
public static void alert(final Activity activity) {
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
import static ru.vtosters.lite.utils.Helper.GetContext;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.vk.audio.AudioMessageUtils;
|
||||
import com.vk.auth.api.VKAccount;
|
||||
import com.vk.core.f.FileUtils;
|
||||
import com.vk.core.util.AppContextHolder;
|
||||
import com.vk.core.util.ToastUtils;
|
||||
import com.vk.imageloader.VKImageLoader;
|
||||
import com.vk.pushes.PushSubscriber;
|
||||
import com.vtosters.lite.auth.VKAccountManager;
|
||||
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
|
||||
import com.vtosters.lite.im.ImEngineProvider;
|
||||
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.utils.AccountManager;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class AccountsFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
@Override
|
||||
public void b(Bundle bundle) {
|
||||
super.b(bundle);
|
||||
|
||||
int vtosterXml = Helper.GetContext().getResources().getIdentifier("empty", "xml", Helper.GetContext().getPackageName());
|
||||
this.a(vtosterXml);
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, Helper.getString("accounts"));
|
||||
|
||||
PreferencesUtil.addListPreference(this, "account", "", Helper.getString("selectacc"), AccountManager.getAccAmountNames(), AccountManager.getAccAmount());
|
||||
|
||||
a("account").b(AccountManager.getCurrentAccountName());
|
||||
|
||||
a("account").a((preference, o) -> {
|
||||
VKImageLoader.b();
|
||||
ImEngineProvider.a().h();
|
||||
AudioMessageUtils.j();
|
||||
FileUtils.l();
|
||||
VKAccount b = VKAccountManager.b();
|
||||
PushSubscriber.a.a(b.b(), b.c());
|
||||
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
|
||||
ToastUtils.a("Перезапустите приложение");
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addPreference(this, "newacc", Helper.getString("newacc"), "", null, preference -> {
|
||||
SharedPreferences sharedPrefs = GetContext().getSharedPreferences("com.vtosters.lite_preferences", MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = sharedPrefs.edit();
|
||||
editor.putString("account", Integer.toString(AccountManager.getAvalibleAcc()));
|
||||
editor.commit();
|
||||
|
||||
VKImageLoader.b();
|
||||
ImEngineProvider.a().h();
|
||||
AudioMessageUtils.j();
|
||||
FileUtils.l();
|
||||
VKAccount b = VKAccountManager.b();
|
||||
PushSubscriber.a.a(b.b(), b.c());
|
||||
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
|
||||
ToastUtils.a("Перезапустите приложение");
|
||||
return false;
|
||||
});
|
||||
|
||||
PreferencesUtil.addPreference(this, "restartapp", Helper.getString("applicationrestart"), "", null, preference -> {
|
||||
Helper.restarting();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int aq() {
|
||||
return Helper.GetContext().getResources().getIdentifier("accounts", "string", Helper.GetContext().getPackageName());
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,8 @@ package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
public class ActivityFragment extends MaterialPreferenceToolbarFragment {
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.vk.core.util.ToastUtils;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
/* renamed from: ru.vtosters.lite.utils.lite.ui.activities.interface reason: invalid class name */
|
||||
public class InterfaceFragment extends MaterialPreferenceToolbarFragment {
|
||||
@Override
|
||||
@@ -34,7 +36,7 @@ public class InterfaceFragment extends MaterialPreferenceToolbarFragment {
|
||||
}
|
||||
|
||||
public /* synthetic */ boolean restart(Preference preference, Object obj) {
|
||||
ToastUtils.a("Пожалуйста перезапустите приложение");
|
||||
ToastUtils.a(Helper.getString("restartapp"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Typeface;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Themes;
|
||||
|
||||
public class DockBarAdapter extends RecyclerView.a
|
||||
implements IItemTouchHelper {
|
||||
|
||||
public static final int SELECTED_TAB_TYPE = 1;
|
||||
public static final int DISABLED_TAB_TYPE = 2;
|
||||
public static final int GROUP_TITLE_TYPE = 3;
|
||||
|
||||
|
||||
private final DockBarManager mDockBarManager = DockBarManager.getInstance();
|
||||
|
||||
@Override
|
||||
public RecyclerView.x b(ViewGroup parent, int viewType) {
|
||||
if (viewType == GROUP_TITLE_TYPE) {
|
||||
return new GroupViewHolder(createGroupTitle());
|
||||
} else {
|
||||
return new DockBarEditViewHolder(createTabItem());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int b(int i) {
|
||||
return getItemType(i);
|
||||
}
|
||||
|
||||
private View createTabItem() {
|
||||
LinearLayout container = new LinearLayout(Helper.GetContext());
|
||||
container.setTag("tab_item_container");
|
||||
container.setGravity(Gravity.CENTER_VERTICAL);
|
||||
container.setOrientation(LinearLayout.HORIZONTAL);
|
||||
container.setPadding(
|
||||
Helper.convertDpToPixel(12),
|
||||
Helper.convertDpToPixel(12),
|
||||
Helper.convertDpToPixel(12),
|
||||
Helper.convertDpToPixel(12)
|
||||
);
|
||||
container.setLayoutParams(new LinearLayout.LayoutParams(-1, Helper.convertDpToPixel(48)));
|
||||
|
||||
ImageView icon = new ImageView(Helper.GetContext());
|
||||
icon.setTag("icon");
|
||||
icon.setImageTintList(ColorStateList.valueOf(Themes.getAccentColor()));
|
||||
icon.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
Helper.convertDpToPixel(24),
|
||||
Helper.convertDpToPixel(24)));
|
||||
container.addView(icon);
|
||||
|
||||
TextView title = new TextView(Helper.GetContext());
|
||||
title.setTag("title");
|
||||
title.setTextSize(16.0f);
|
||||
title.setTypeface(Typeface.DEFAULT_BOLD);
|
||||
title.setTextColor(Themes.getTextAttr());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(-1, -2);
|
||||
params.weight = 1;
|
||||
params.leftMargin = Helper.convertDpToPixel(16);
|
||||
container.addView(title, params);
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
private View createGroupTitle() {
|
||||
LinearLayout layout = new LinearLayout(Helper.GetContext());
|
||||
layout.setLayoutParams(new LinearLayout.LayoutParams(-1, -2));
|
||||
|
||||
TextView title = new TextView(Helper.GetContext());
|
||||
title.setTag("group_title");
|
||||
title.setTextSize(13.0f);
|
||||
title.setPadding(
|
||||
Helper.convertDpToPixel(16),
|
||||
Helper.convertDpToPixel(13),
|
||||
Helper.convertDpToPixel(16),
|
||||
Helper.convertDpToPixel(13)
|
||||
);
|
||||
title.setAllCaps(true);
|
||||
title.setTextColor(Themes.getTextAttr());
|
||||
layout.addView(title, new LinearLayout.LayoutParams(-2, -2));
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(RecyclerView.x holder, int position) {
|
||||
if (holder instanceof GroupViewHolder) {
|
||||
((GroupViewHolder) holder).bind(mDockBarManager.getGroupTitle(position));
|
||||
} else {
|
||||
int viewType = getItemType(position);
|
||||
if (viewType == SELECTED_TAB_TYPE) {
|
||||
((DockBarEditViewHolder) holder).bind(mDockBarManager.getSelectedTab(position));
|
||||
} else if (viewType == DISABLED_TAB_TYPE) {
|
||||
((DockBarEditViewHolder) holder).bind(mDockBarManager.getDisabledTab(position));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int au_() {
|
||||
return mDockBarManager.getItemCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemDismiss(int index) {
|
||||
mDockBarManager.move(this, index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onItemMove(int fromPosition, int toPosition) {
|
||||
int fromViewType = getItemType(fromPosition);
|
||||
int toViewType = getItemType(toPosition);
|
||||
|
||||
if (fromPosition < toPosition) {
|
||||
|
||||
if (fromViewType != toViewType) {
|
||||
mDockBarManager.swapAndMigrate(this, fromPosition, toPosition);
|
||||
} else {
|
||||
List<DockBarTab> list = fromViewType == SELECTED_TAB_TYPE ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs();
|
||||
mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
}
|
||||
|
||||
} else if (toPosition != 0) {
|
||||
|
||||
if (fromViewType != toViewType) {
|
||||
mDockBarManager.swapAndMigrate(this, fromPosition, toPosition);
|
||||
} else {
|
||||
List<DockBarTab> list = fromViewType == SELECTED_TAB_TYPE ? mDockBarManager.getSelectedTabs() : mDockBarManager.getDisabledTabs();
|
||||
mDockBarManager.swap(this, list, fromViewType, fromPosition, toPosition);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getIndexByViewType(int position, int viewType) {
|
||||
return mDockBarManager.getIndexByViewType(position, viewType);
|
||||
}
|
||||
|
||||
public int getItemType(int position) {
|
||||
return mDockBarManager.getItemType(position);
|
||||
}
|
||||
|
||||
static class DockBarEditViewHolder extends RecyclerView.x {
|
||||
|
||||
private ImageView mIcon;
|
||||
private TextView mTitle;
|
||||
|
||||
public DockBarEditViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
mIcon = itemView.findViewWithTag("icon");
|
||||
mTitle = itemView.findViewWithTag("title");
|
||||
}
|
||||
|
||||
public void bind(DockBarTab tab) {
|
||||
mIcon.setImageResource(tab.iconID);
|
||||
mTitle.setText(tab.titleID);
|
||||
}
|
||||
}
|
||||
|
||||
static class GroupViewHolder extends RecyclerView.x {
|
||||
|
||||
private TextView mGroupTitle;
|
||||
|
||||
public GroupViewHolder(View view) {
|
||||
super(view);
|
||||
|
||||
mGroupTitle = view.findViewWithTag("group_title");
|
||||
}
|
||||
|
||||
public void bind(String groupTitle) {
|
||||
mGroupTitle.setText(groupTitle);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
public class DockBarDragItem {
|
||||
|
||||
public boolean active;
|
||||
public int index;
|
||||
public DockBarTab dockBarTab;
|
||||
|
||||
public DockBarDragItem(boolean active, int index, DockBarTab dockBarTab) {
|
||||
this.active = active;
|
||||
this.index = index;
|
||||
this.dockBarTab = dockBarTab;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.a.ItemTouchHelper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import me.grishka.appkit.fragments.ToolbarFragment;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class DockBarFragment extends ToolbarFragment {
|
||||
|
||||
private RecyclerView mRecyclerView;
|
||||
private DockBarAdapter mAdapter;
|
||||
private ItemTouchHelper mItemTouchHelper;
|
||||
|
||||
@Override
|
||||
public View d(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
|
||||
super.b(bundle);
|
||||
|
||||
LinearLayout container = new LinearLayout(n());
|
||||
container.setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
|
||||
container.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
LinearLayout buttonsContainer = new LinearLayout(n());
|
||||
buttonsContainer.setPadding(
|
||||
Helper.convertDpToPixel(13),
|
||||
Helper.convertDpToPixel(10),
|
||||
Helper.convertDpToPixel(13),
|
||||
Helper.convertDpToPixel(10)
|
||||
);
|
||||
container.addView(buttonsContainer, new LinearLayout.LayoutParams(-1, -2));
|
||||
|
||||
Button save = new Button(n());
|
||||
save.setText("Сохранить");
|
||||
save.setOnClickListener(v -> {
|
||||
DockBarManager.getInstance().save();
|
||||
Helper.restarting();
|
||||
});
|
||||
|
||||
LinearLayout.LayoutParams saveParams = new LinearLayout.LayoutParams(0, -2);
|
||||
saveParams.weight = 1.0f;
|
||||
buttonsContainer.addView(save, saveParams);
|
||||
|
||||
View divider = new View(n());
|
||||
buttonsContainer.addView(divider, new LinearLayout.LayoutParams(Helper.convertDpToPixel(10), 0));
|
||||
|
||||
Button reset = new Button(n());
|
||||
reset.setText("Сбросить");
|
||||
reset.setOnClickListener(v -> {
|
||||
DockBarManager.getInstance().delete();
|
||||
Helper.restarting();
|
||||
});
|
||||
|
||||
LinearLayout.LayoutParams resetParams = new LinearLayout.LayoutParams(0, -2);
|
||||
resetParams.weight = 1.0f;
|
||||
buttonsContainer.addView(reset, resetParams);
|
||||
|
||||
mRecyclerView = new RecyclerView(n());
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(n()));
|
||||
mAdapter = new DockBarAdapter();
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
container.addView(mRecyclerView, new LinearLayout.LayoutParams(-1, -1));
|
||||
|
||||
mItemTouchHelper = new ItemTouchHelper(new ItemTouchHelperCallback(mAdapter));
|
||||
mItemTouchHelper.a(mRecyclerView);
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(View arg0, Bundle arg1) {
|
||||
o_(true);
|
||||
|
||||
super.a(arg0, arg1);
|
||||
|
||||
a("Редактор докбара");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.vk.apps.AppsFragment;
|
||||
import com.vk.core.d.RecoloredDrawable;
|
||||
import com.vk.core.fragments.FragmentImpl;
|
||||
import com.vtosters.lite.ui.bottomnavigation.BottomNavigationMenuView;
|
||||
import com.vtosters.lite.ui.bottomnavigation.BottomNavigationView;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class DockBarInjector {
|
||||
private static final DockBarManager sManager = DockBarManager.getInstance();
|
||||
|
||||
public static Map<Class<? extends FragmentImpl>, Integer> injectMap() {
|
||||
LinkedHashMap<Class<? extends FragmentImpl>, Integer> map = new LinkedHashMap<>();
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
map.put(tab.fragmentClass, tab.id);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static void inject(BottomNavigationView navigationView) {
|
||||
Menu menu = navigationView.getMenu();
|
||||
menu.clear();
|
||||
try {
|
||||
Field field = BottomNavigationMenuView.class.getDeclaredField("h");
|
||||
field.setAccessible(true);
|
||||
|
||||
Object synchronizedPool = field.get(null);
|
||||
|
||||
Class<?> synchronisedPoolCls = Class.forName("android.support.v4.f.Pools$a");
|
||||
|
||||
Method acquire = synchronisedPoolCls.getDeclaredMethod("a");
|
||||
|
||||
if (synchronizedPool != null) {
|
||||
do {
|
||||
} while (acquire.invoke(synchronizedPool) != null);
|
||||
}
|
||||
|
||||
} catch (NoSuchFieldException | IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
MenuItem add = menu.add(0, tab.id, 0, tab.titleID);
|
||||
Drawable drawable = Helper.GetContext().getResources().getDrawable(tab.iconID);
|
||||
ColorStateList colorStateList = Helper.GetContext().getResources().getColorStateList(com.vtosters.lite.R.color.bottom_navigation_item);
|
||||
// if (isAndroidMonet()) {
|
||||
// colorStateList = ColorStateList.valueOf(Themes.getAccentColor());
|
||||
// }
|
||||
add.setIcon((Drawable) new RecoloredDrawable(drawable, colorStateList));
|
||||
add.setShowAsAction(1);
|
||||
add.setCheckable(true);
|
||||
}
|
||||
}
|
||||
|
||||
public static int injectId(String tag) {
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if (tag.equals(tab.tag))
|
||||
return tab.id;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static void injectMenuFragment(Menu menu) {
|
||||
List<MenuItem> menuItems = new ArrayList<>();
|
||||
for (int i = 0; i < menu.size(); i++) {
|
||||
menuItems.add(menu.getItem(i));
|
||||
}
|
||||
menu.clear();
|
||||
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if (tab.id != com.vtosters.lite.R.id.tab_menu) {
|
||||
int itemId = tab.id;
|
||||
if (tab.id == com.vtosters.lite.R.id.tab_news) {
|
||||
itemId = com.vtosters.lite.R.id.menu_newsfeed;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_discover) {
|
||||
itemId = com.vtosters.lite.R.id.menu_search;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_feedback) {
|
||||
itemId = com.vtosters.lite.R.id.menu_feedback;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_messages) {
|
||||
itemId = com.vtosters.lite.R.id.menu_messages;
|
||||
}
|
||||
|
||||
MenuItem add = menu.add(0, itemId, 0, tab.titleID);
|
||||
add.setIcon(tab.iconID);
|
||||
add.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
for (MenuItem menuItem : menuItems) {
|
||||
MenuItem item = menu.add(menuItem.getGroupId(), menuItem.getItemId(), menuItem.getOrder(), menuItem.getTitle());
|
||||
item.setIcon(menuItem.getIcon());
|
||||
}
|
||||
menuItems.clear();
|
||||
|
||||
for (int i = 0; i < menu.size(); i++) {
|
||||
MenuItem menuItem = menu.getItem(i);
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
int itemId = menuItem.getItemId();
|
||||
if (itemId == com.vtosters.lite.R.id.menu_newsfeed) {
|
||||
itemId = com.vtosters.lite.R.id.tab_news;
|
||||
} else if (itemId == com.vtosters.lite.R.id.menu_search) {
|
||||
itemId = com.vtosters.lite.R.id.tab_discover;
|
||||
} else if (itemId == com.vtosters.lite.R.id.menu_feedback) {
|
||||
itemId = com.vtosters.lite.R.id.tab_feedback;
|
||||
} else if (itemId == com.vtosters.lite.R.id.menu_messages) {
|
||||
itemId = com.vtosters.lite.R.id.tab_messages;
|
||||
}
|
||||
if (itemId == tab.id && tab.id != com.vtosters.lite.R.id.menu_vk_pay) {
|
||||
menuItems.add(menuItem);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (MenuItem menuItem : menuItems) {
|
||||
menu.removeItem(menuItem.getItemId());
|
||||
}
|
||||
}
|
||||
|
||||
public static JSONArray injectMenuJSON(JSONArray arr) {
|
||||
List<String> arrayList = new ArrayList(Arrays.asList(
|
||||
"news",
|
||||
"messages",
|
||||
"feedback",
|
||||
"discover"
|
||||
));
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if (tab.id == com.vtosters.lite.R.id.tab_discover) {
|
||||
arrayList.remove("discover");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_feedback) {
|
||||
arrayList.remove("feedback");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_messages) {
|
||||
arrayList.remove("messages");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_news) {
|
||||
arrayList.remove("news");
|
||||
}
|
||||
}
|
||||
try {
|
||||
JSONArray jSONArray = new JSONArray();
|
||||
for (int i = 0; i < arrayList.size(); i++) {
|
||||
jSONArray.put(new JSONObject().put("name", arrayList.get(i)));
|
||||
}
|
||||
for (int i2 = 0; i2 < arr.length(); i2++) {
|
||||
jSONArray.put(arr.getJSONObject(i2));
|
||||
}
|
||||
return jSONArray;
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getItemCount() {
|
||||
return sManager.getSelectedTabs().size();
|
||||
}
|
||||
|
||||
public static boolean isDockOpenAllowed(FragmentImpl fragment) {
|
||||
return isDockOpenAllowed(fragment.getClass());
|
||||
}
|
||||
|
||||
public static boolean isDockOpenAllowed(Class<?> cls) {
|
||||
for (DockBarTab tab : sManager.getSelectedTabs())
|
||||
if (tab.fragmentClass == cls)
|
||||
return true;
|
||||
for (DockBarTab tab : sManager.getDisabledTabs())
|
||||
if (tab.fragmentClass == cls)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Class<?> interceptClick(int id) {
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if (id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
}
|
||||
for (DockBarTab tab : sManager.getDisabledTabs()) {
|
||||
if (id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
}
|
||||
return AppsFragment.class;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import com.vk.apps.AppsFragment;
|
||||
import com.vk.discover.DiscoverFeedFragment;
|
||||
import com.vk.discover.DiscoverFragment;
|
||||
import com.vk.fave.fragments.FaveTabFragment;
|
||||
import com.vk.menu.MenuFragment;
|
||||
import com.vk.music.fragment.MusicFragment;
|
||||
import com.vk.newsfeed.Feed2049;
|
||||
import com.vk.newsfeed.NewsfeedFragment;
|
||||
import com.vk.notifications.NotificationsContainerFragment;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.fragments.GamesFragment;
|
||||
import com.vtosters.lite.fragments.PhotosFragment;
|
||||
import com.vtosters.lite.fragments.ProfileFragment;
|
||||
import com.vtosters.lite.fragments.SettingsListFragment;
|
||||
import com.vtosters.lite.fragments.d.DocumentsViewFragment;
|
||||
import com.vtosters.lite.fragments.f.FriendsFragment;
|
||||
import com.vtosters.lite.fragments.g.BirthdaysFragment;
|
||||
import com.vtosters.lite.fragments.h.GroupsFragment;
|
||||
import com.vtosters.lite.fragments.lives.LivesPostListFragment;
|
||||
import com.vtosters.lite.fragments.m.VideosFragment;
|
||||
import com.vtosters.lite.fragments.messages.dialogs.DialogsFragment;
|
||||
import com.vtosters.lite.fragments.money.MoneyTransfersFragment;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
|
||||
public class DockBarManager {
|
||||
public static final int MIN_SELECTED_TABS_LIMIT = 3;
|
||||
public static final int MAX_SELECTED_TABS_LIMIT = 8;
|
||||
|
||||
private static DockBarManager sInstance = new DockBarManager();
|
||||
|
||||
public static DockBarManager getInstance() {
|
||||
if (sInstance == null)
|
||||
sInstance = new DockBarManager();
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
private List<DockBarTab> mSelectedTabs = new ArrayList<>();
|
||||
private List<DockBarTab> mDisabledTabs = new ArrayList<>();
|
||||
private List<String> mGroups = Arrays.asList(
|
||||
"Выбранные элементы докбара",
|
||||
"Невыбранные элементы"
|
||||
);
|
||||
|
||||
public DockBarManager() {
|
||||
load();
|
||||
}
|
||||
|
||||
private void load() {
|
||||
File dockbar = new File(Helper.GetContext().getFilesDir(), "dockbar.json");
|
||||
|
||||
if (!dockbar.exists()) {
|
||||
mSelectedTabs.add(new DockBarTab("tab_news", Prefs.olddock() ? R.drawable.ic_newsfeed_28 : R.drawable.ic_menu_newsfeed_outline_28, R.string.newsfeed, R.id.tab_news, Prefs.isUseAlternativeFragments() ? Feed2049.b.c() : NewsfeedFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_discover", Prefs.olddock() ? R.drawable.ic_search_28 : R.drawable.ic_menu_search_outline_28, R.string.search, R.id.tab_discover, Prefs.isUseAlternativeFragments() ? DiscoverFragment.class : DiscoverFeedFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_messages", Prefs.olddock() ? R.drawable.ic_menu_messages_28 : R.drawable.ic_message_28_outline, R.string.messages, R.id.tab_messages, DialogsFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_feedback", Prefs.olddock() ? R.drawable.ic_menu_notifications_28 : R.drawable.ic_menu_notification_outline_28, R.string.feedback, R.id.tab_feedback, NotificationsContainerFragment.class));
|
||||
mSelectedTabs.add(new DockBarTab("tab_menu", Prefs.olddock() ? R.drawable.ic_menu_more_28 : R.drawable.ic_menu_more_outline_28, R.string.menu, R.id.tab_menu, MenuFragment.class));
|
||||
|
||||
mDisabledTabs.add(new DockBarTab("tab_friends", R.drawable.ic_user_24, R.string.friends, R.id.menu_friends, FriendsFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_groups", R.drawable.ic_users_24, R.string.groups, R.id.menu_groups, GroupsFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_photos", R.drawable.ic_camera_24, R.string.photos, R.id.menu_photos, PhotosFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_audios", R.drawable.ic_music_24, R.string.music, R.id.menu_audios, MusicFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_videos", R.drawable.ic_video_24, R.string.videos, R.id.menu_videos, VideosFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_lives", R.drawable.ic_live_filter_24dp, R.string.sett_live, R.id.menu_lives, LivesPostListFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_games", R.drawable.ic_games_24, R.string.games, R.id.menu_games, GamesFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_fave", R.drawable.ic_favorite_24, R.string.exo_track_selection_title_video_res_0x7f11031e, R.id.menu_fave, FaveTabFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_documents", R.drawable.ic_document_24, R.string.docs, R.id.menu_documents, DocumentsViewFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_payments", R.drawable.ic_money_transfer_24, R.string.money_transfer_money_transfers, R.id.menu_payments, MoneyTransfersFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_vk_apps", R.drawable.ic_services_24, R.string.menu_apps, R.id.menu_vk_apps, AppsFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_profile", R.drawable.libverify_ic_account_circle_white, R.string.profile, R.id.profile, ProfileFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_settings", R.drawable.ic_settings_24, R.string.menu_settings, R.id.menu_settings, SettingsListFragment.class));
|
||||
mDisabledTabs.add(new DockBarTab("tab_brtd", R.drawable.ic_menu_birthdays, R.string.birthdays_title, R.id.menu_birthdays, BirthdaysFragment.class));
|
||||
|
||||
} else {
|
||||
try {
|
||||
JSONObject json = new JSONObject(readFully(new FileInputStream(dockbar)));
|
||||
|
||||
JSONArray selected = json.getJSONArray("selected");
|
||||
for (int i = 0; i < selected.length(); i++) {
|
||||
JSONObject item = selected.getJSONObject(i);
|
||||
DockBarTab tab = new DockBarTab(
|
||||
item.getString("tag"),
|
||||
item.getInt("iconID"),
|
||||
item.getInt("titleID"),
|
||||
item.getInt("id"),
|
||||
Class.forName(item.getString("fragmentClass"))
|
||||
);
|
||||
if (Prefs.isUseAlternativeFragments()) {
|
||||
if (tab.fragmentClass == NewsfeedFragment.class) {
|
||||
tab.fragmentClass = Feed2049.b.c();
|
||||
} else if (tab.fragmentClass == DiscoverFeedFragment.class) {
|
||||
tab.fragmentClass = DiscoverFragment.class;
|
||||
}
|
||||
} else {
|
||||
if (tab.fragmentClass == Feed2049.b.c()) {
|
||||
tab.fragmentClass = NewsfeedFragment.class;
|
||||
} else if (tab.fragmentClass == DiscoverFragment.class) {
|
||||
tab.fragmentClass = DiscoverFeedFragment.class;
|
||||
}
|
||||
}
|
||||
mSelectedTabs.add(tab);
|
||||
}
|
||||
|
||||
JSONArray disabled = json.getJSONArray("disabled");
|
||||
for (int i = 0; i < disabled.length(); i++) {
|
||||
JSONObject item = disabled.getJSONObject(i);
|
||||
DockBarTab tab = new DockBarTab(
|
||||
item.getString("tag"),
|
||||
item.getInt("iconID"),
|
||||
item.getInt("titleID"),
|
||||
item.getInt("id"),
|
||||
Class.forName(item.getString("fragmentClass"))
|
||||
);
|
||||
if (Prefs.isUseAlternativeFragments()) {
|
||||
if (tab.fragmentClass == NewsfeedFragment.class) {
|
||||
tab.fragmentClass = Feed2049.b.c();
|
||||
} else if (tab.fragmentClass == DiscoverFeedFragment.class) {
|
||||
tab.fragmentClass = DiscoverFragment.class;
|
||||
}
|
||||
} else {
|
||||
if (tab.fragmentClass == Feed2049.b.c()) {
|
||||
tab.fragmentClass = NewsfeedFragment.class;
|
||||
} else if (tab.fragmentClass == DiscoverFragment.class) {
|
||||
tab.fragmentClass = DiscoverFeedFragment.class;
|
||||
}
|
||||
}
|
||||
mDisabledTabs.add(tab);
|
||||
}
|
||||
|
||||
} catch (JSONException | IOException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String readFully(InputStream is) throws IOException {
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
byte[] buffer = new byte[2048];
|
||||
int len;
|
||||
while ((len = is.read(buffer)) > 0) {
|
||||
bos.write(buffer, 0, len);
|
||||
}
|
||||
return bos.toString();
|
||||
}
|
||||
|
||||
public void delete() {
|
||||
File dockbar = new File(Helper.GetContext().getFilesDir(), "dockbar.json");
|
||||
if (dockbar.exists()) dockbar.delete();
|
||||
}
|
||||
|
||||
public void save() {
|
||||
try {
|
||||
File dockbar = new File(Helper.GetContext().getFilesDir(), "dockbar.json");
|
||||
|
||||
JSONArray selected = new JSONArray();
|
||||
for (DockBarTab tab : mSelectedTabs) {
|
||||
|
||||
JSONObject item = new JSONObject()
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
.put("titleID", tab.titleID)
|
||||
.put("id", tab.id)
|
||||
.put("fragmentClass", tab.fragmentClass.getName());
|
||||
selected.put(item);
|
||||
}
|
||||
|
||||
JSONArray disabled = new JSONArray();
|
||||
for (DockBarTab tab : mDisabledTabs) {
|
||||
JSONObject item = new JSONObject()
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
.put("titleID", tab.titleID)
|
||||
.put("id", tab.id)
|
||||
.put("fragmentClass", tab.fragmentClass.getName());
|
||||
disabled.put(item);
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("selected", selected).put("disabled", disabled);
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(dockbar);
|
||||
fos.write(json.toString().getBytes(StandardCharsets.UTF_8));
|
||||
} catch (JSONException | IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void swap(DockBarAdapter adapter, List<DockBarTab> list, int itemType, int fromPosition, int toPosition) {
|
||||
int curr = adapter.getIndexByViewType(fromPosition, itemType);
|
||||
int target = adapter.getIndexByViewType(toPosition, itemType);
|
||||
if (fromPosition < toPosition) {
|
||||
for (int i = curr; i < target; i++) {
|
||||
Collections.swap(list, i, i + 1);
|
||||
}
|
||||
} else {
|
||||
for (int i = curr; i > target; i--) {
|
||||
Collections.swap(list, i, i - 1);
|
||||
}
|
||||
}
|
||||
adapter.b(fromPosition, toPosition);// notifyItemMoved
|
||||
}
|
||||
|
||||
public void swapAndMigrate(DockBarAdapter adapter, int fromPosition, int toPosition) {
|
||||
int curr = adapter.getIndexByViewType(fromPosition, adapter.getItemType(fromPosition));
|
||||
int target = adapter.getIndexByViewType(toPosition, adapter.getItemType(toPosition));
|
||||
if (fromPosition < toPosition) {
|
||||
|
||||
if (mSelectedTabs.size() <= MIN_SELECTED_TABS_LIMIT || mSelectedTabs.get(curr).tag.equals("tab_menu")) return;
|
||||
|
||||
DockBarTab tab = mSelectedTabs.get(curr);
|
||||
mSelectedTabs.remove(tab);
|
||||
mDisabledTabs.add(tab);
|
||||
|
||||
for (int i = mDisabledTabs.size() - 1; i > target; i--) {
|
||||
Collections.swap(mDisabledTabs, i, i - 1);
|
||||
}
|
||||
|
||||
for (int i = 0; i < target; i++) {
|
||||
Collections.swap(mDisabledTabs, i, i + 1);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (mSelectedTabs.size() >= MAX_SELECTED_TABS_LIMIT) return;
|
||||
|
||||
DockBarTab tab = mDisabledTabs.get(curr);
|
||||
mDisabledTabs.remove(tab);
|
||||
mSelectedTabs.add(tab);
|
||||
}
|
||||
adapter.b(fromPosition, toPosition);// notifyItemMoved
|
||||
}
|
||||
|
||||
public void move(DockBarAdapter adapter, int index) {
|
||||
if (getItemType(index) == 1) {
|
||||
DockBarTab item = mSelectedTabs.get(getIndexByViewType(index, 1));
|
||||
|
||||
mSelectedTabs.remove(item);
|
||||
|
||||
mDisabledTabs.add(item);
|
||||
|
||||
for (int i = mDisabledTabs.size() - 1; i > 0; i--) {
|
||||
Collections.swap(mDisabledTabs, i, i - 1);
|
||||
}
|
||||
|
||||
adapter.e_(index); // notifyItemRemoved
|
||||
adapter.d_(getItemCount() - mDisabledTabs.size()); // notifyItemInserted
|
||||
}
|
||||
}
|
||||
|
||||
public int getItemCount() {
|
||||
return mSelectedTabs.size() + mDisabledTabs.size() + mGroups.size();
|
||||
}
|
||||
|
||||
public int getIndexByViewType(int position, int viewType) {
|
||||
if (viewType == DockBarAdapter.SELECTED_TAB_TYPE) {
|
||||
return position - 1;
|
||||
} else if (viewType == DockBarAdapter.DISABLED_TAB_TYPE) {
|
||||
return position - mSelectedTabs.size() - mGroups.size();
|
||||
} else {
|
||||
return position != 0 ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
public int getItemType(int position) {
|
||||
if (position == 0 || position == mSelectedTabs.size() + 1) {
|
||||
return DockBarAdapter.GROUP_TITLE_TYPE;
|
||||
} else if (position - 1 < mSelectedTabs.size()) {
|
||||
return DockBarAdapter.SELECTED_TAB_TYPE;
|
||||
} else if (position - 1 >= mSelectedTabs.size()) {
|
||||
return DockBarAdapter.DISABLED_TAB_TYPE;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public DockBarTab getSelectedTab(int pos) {
|
||||
return mSelectedTabs.get(getIndexByViewType(pos, 1));
|
||||
}
|
||||
|
||||
public DockBarTab getDisabledTab(int pos) {
|
||||
return mDisabledTabs.get(getIndexByViewType(pos, 2));
|
||||
}
|
||||
|
||||
public String getGroupTitle(int pos) {
|
||||
return mGroups.get(getIndexByViewType(pos, -1));
|
||||
}
|
||||
|
||||
public List<DockBarTab> getSelectedTabs() {
|
||||
return mSelectedTabs;
|
||||
}
|
||||
|
||||
public List<DockBarTab> getDisabledTabs() {
|
||||
return mDisabledTabs;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import com.vk.core.fragments.FragmentImpl;
|
||||
|
||||
public class DockBarTab {
|
||||
|
||||
public String tag;
|
||||
public int iconID;
|
||||
public int titleID;
|
||||
public int id;
|
||||
public Class<? extends FragmentImpl> fragmentClass;
|
||||
|
||||
public DockBarTab(String tag, int iconID, int titleID, int resID, Class<?> fragmentClass) {
|
||||
this.tag = tag;
|
||||
this.iconID = iconID;
|
||||
this.titleID = titleID;
|
||||
this.id = resID;
|
||||
this.fragmentClass = (Class<? extends FragmentImpl>) fragmentClass;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
public interface IItemTouchHelper {
|
||||
|
||||
void onItemDismiss(int index);
|
||||
|
||||
boolean onItemMove(int fromPosition, int toPosition);
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import static androidx.recyclerview.widget.ItemTouchHelper.Callback.makeMovementFlags;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.a.ItemTouchHelper;
|
||||
|
||||
public class ItemTouchHelperCallback extends ItemTouchHelper.a {
|
||||
|
||||
private DockBarAdapter mAdapter;
|
||||
|
||||
public ItemTouchHelperCallback(DockBarAdapter mAdapter) {
|
||||
this.mAdapter = mAdapter;
|
||||
}
|
||||
|
||||
@Override // isLongPressDragEnabled
|
||||
public boolean a() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // isItemViewSwipeEnabled
|
||||
public boolean b() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int a(RecyclerView recyclerView, RecyclerView.x viewHolder) {
|
||||
int pos = mAdapter.getItemType(viewHolder.d());
|
||||
int dragFlags = pos != DockBarAdapter.GROUP_TITLE_TYPE ? androidx.recyclerview.widget.ItemTouchHelper.UP | androidx.recyclerview.widget.ItemTouchHelper.DOWN : 0;
|
||||
int swipeFlags = pos == 1 ? androidx.recyclerview.widget.ItemTouchHelper.START | androidx.recyclerview.widget.ItemTouchHelper.END : 0;
|
||||
return makeMovementFlags(dragFlags, swipeFlags);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(RecyclerView.x viewHolder, int direction) {
|
||||
mAdapter.onItemDismiss(viewHolder.d());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean b(RecyclerView recyclerView, RecyclerView.x viewHolder, RecyclerView.x target) {
|
||||
if (mAdapter.getItemType(viewHolder.d()) == DockBarAdapter.GROUP_TITLE_TYPE)
|
||||
return false;
|
||||
return mAdapter.onItemMove(viewHolder.d(), target.d());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package ru.vtosters.lite.ui.fragments.multiaccount;
|
||||
|
||||
class MultiAccountItem {
|
||||
public String nickname;
|
||||
public String imageUrl;
|
||||
public int index;
|
||||
|
||||
public MultiAccountItem(String name, String imageUrl, int index) {
|
||||
this.nickname = name;
|
||||
this.imageUrl = imageUrl;
|
||||
this.index = index;
|
||||
}
|
||||
}
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
package ru.vtosters.lite.ui.fragments.multiaccount;
|
||||
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.vk.audio.AudioMessageUtils;
|
||||
import com.vk.auth.api.VKAccount;
|
||||
import com.vk.core.f.FileUtils;
|
||||
import com.vk.core.util.AppContextHolder;
|
||||
import com.vk.imageloader.VKImageLoader;
|
||||
import com.vk.imageloader.view.VKCircleImageView;
|
||||
import com.vk.pushes.PushSubscriber;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.auth.VKAccountManager;
|
||||
import com.vtosters.lite.im.ImEngineProvider;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Themes;
|
||||
|
||||
public class MultiAccountAdapter extends RecyclerView.a<MultiAccountAdapter.MultiAccountViewHolder> {
|
||||
|
||||
private final List<MultiAccountItem> mAccounts = MultiAccountManager.buildList();
|
||||
|
||||
@Override
|
||||
public MultiAccountViewHolder b(ViewGroup parent, int viewType) {
|
||||
RelativeLayout layout = new RelativeLayout(parent.getContext());
|
||||
layout.setPadding(
|
||||
Helper.convertDpToPixel(12),
|
||||
Helper.convertDpToPixel(6),
|
||||
Helper.convertDpToPixel(6),
|
||||
Helper.convertDpToPixel(6)
|
||||
);
|
||||
|
||||
VKCircleImageView avatar = new VKCircleImageView(parent.getContext());
|
||||
avatar.setId(1);
|
||||
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
|
||||
Helper.convertDpToPixel(48),
|
||||
Helper.convertDpToPixel(48)
|
||||
);
|
||||
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
|
||||
params.addRule(RelativeLayout.CENTER_VERTICAL);
|
||||
layout.addView(avatar, params);
|
||||
|
||||
TextView nickname = new TextView(parent.getContext());
|
||||
nickname.setId(2);
|
||||
nickname.setPaddingRelative(
|
||||
Helper.convertDpToPixel(12),
|
||||
0,
|
||||
0,
|
||||
0
|
||||
);
|
||||
nickname.setEllipsize(TextUtils.TruncateAt.END);
|
||||
nickname.setSingleLine(true);
|
||||
nickname.setTextSize(15.0f);
|
||||
nickname.setTextColor(Themes.getTextAttr());
|
||||
nickname.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
|
||||
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(-2, -2);
|
||||
params1.addRule(RelativeLayout.CENTER_VERTICAL);
|
||||
params1.addRule(RelativeLayout.RIGHT_OF, 1);
|
||||
layout.addView(nickname, params1);
|
||||
|
||||
ImageButton action = new ImageButton(parent.getContext());
|
||||
action.setId(3);
|
||||
action.setBackgroundResource(com.vtosters.lite.R.drawable.rounded_list_selector);
|
||||
Drawable drawable = Themes.recolorDrawable(Helper.getResources().getDrawable(R.drawable.ic_list_remove));
|
||||
action.setImageDrawable(drawable);
|
||||
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
|
||||
Helper.convertDpToPixel(48),
|
||||
Helper.convertDpToPixel(48)
|
||||
);
|
||||
params2.addRule(RelativeLayout.CENTER_VERTICAL);
|
||||
params2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
|
||||
layout.addView(action, params2);
|
||||
|
||||
return new MultiAccountViewHolder(layout);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(MultiAccountViewHolder holder, int pos) {
|
||||
holder.bind(pos == 0 ? null : mAccounts.get(pos-1), pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int au_() {
|
||||
return mAccounts.size() + 1;
|
||||
}
|
||||
|
||||
static class MultiAccountViewHolder extends RecyclerView.x {
|
||||
|
||||
private final RelativeLayout mContainer;
|
||||
private final VKCircleImageView mAvatar;
|
||||
private final TextView mNickname;
|
||||
private final ImageButton mAction;
|
||||
|
||||
public MultiAccountViewHolder(View view) {
|
||||
super(view);
|
||||
|
||||
mContainer = (RelativeLayout) view;
|
||||
mAvatar = (VKCircleImageView) view.findViewById(1);
|
||||
mNickname = (TextView) view.findViewById(2);
|
||||
mAction = (ImageButton) view.findViewById(3);
|
||||
}
|
||||
|
||||
public void bind(MultiAccountItem item, int pos) {
|
||||
if (pos == 0) {
|
||||
mNickname.setText("Добавить новый аккаунт");
|
||||
mContainer.setOnClickListener(v -> {
|
||||
MultiAccountManager.addAccount();
|
||||
|
||||
VKImageLoader.b();
|
||||
ImEngineProvider.a().h();
|
||||
AudioMessageUtils.j();
|
||||
FileUtils.l();
|
||||
VKAccount b = VKAccountManager.b();
|
||||
PushSubscriber.a.a(b.b(), b.c());
|
||||
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
|
||||
Helper.restarting();
|
||||
});
|
||||
Drawable drawable = Themes.recolorDrawable(Helper.getResources().getDrawable(R.drawable.ic_list_add));
|
||||
mAction.setImageDrawable(drawable);
|
||||
mAction.setClickable(false);
|
||||
} else {
|
||||
mContainer.setOnClickListener(v -> {
|
||||
MultiAccountManager.switchAccount(item.index);
|
||||
|
||||
VKImageLoader.b();
|
||||
ImEngineProvider.a().h();
|
||||
AudioMessageUtils.j();
|
||||
FileUtils.l();
|
||||
VKAccount b = VKAccountManager.b();
|
||||
PushSubscriber.a.a(b.b(), b.c());
|
||||
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
|
||||
Helper.restarting();
|
||||
|
||||
});
|
||||
|
||||
if (Helper.isNetworkConnected())
|
||||
mAvatar.a(item.imageUrl);
|
||||
else
|
||||
mAvatar.a(R.drawable.vkim_ic_placeholder_user_square_64dp);
|
||||
|
||||
mNickname.setText(item.nickname);
|
||||
|
||||
mAction.setOnClickListener(v -> {
|
||||
MultiAccountManager.deleteAccount(item.index);
|
||||
|
||||
VKImageLoader.b();
|
||||
ImEngineProvider.a().h();
|
||||
AudioMessageUtils.j();
|
||||
FileUtils.l();
|
||||
VKAccount b = VKAccountManager.b();
|
||||
PushSubscriber.a.a(b.b(), b.c());
|
||||
AppContextHolder.a.getSharedPreferences("gcm", 0).edit().clear().apply();
|
||||
Helper.restarting();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package ru.vtosters.lite.ui.fragments.multiaccount;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import me.grishka.appkit.fragments.ToolbarFragment;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class MultiAccountFragment extends ToolbarFragment {
|
||||
|
||||
private RecyclerView mRecyclerView;
|
||||
private MultiAccountAdapter mAdapter;
|
||||
|
||||
@Override
|
||||
public View d(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
|
||||
|
||||
LinearLayout layout = new LinearLayout(n());
|
||||
|
||||
mRecyclerView = new RecyclerView(n());
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(n()));
|
||||
mAdapter = new MultiAccountAdapter();
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
layout.addView(mRecyclerView, new LinearLayout.LayoutParams(-1, -1));
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(View arg0, Bundle arg1) {
|
||||
o_(true);
|
||||
|
||||
super.a(arg0, arg1);
|
||||
|
||||
a(Helper.getString("accounts"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package ru.vtosters.lite.ui.fragments.multiaccount;
|
||||
|
||||
import static ru.vtosters.lite.utils.Helper.GetContext;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class MultiAccountManager {
|
||||
|
||||
public static void migrate() {
|
||||
SharedPreferences OldPrefs = Helper.GetContext().getSharedPreferences("pref_account_manager", Context.MODE_PRIVATE);
|
||||
String OldPrefsValue = OldPrefs.getString("key_vk_account", "");
|
||||
SharedPreferences NewPrefs = GetContext().getSharedPreferences("pref_account_manager0", Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = NewPrefs.edit();
|
||||
editor.putString("key_vk_account", OldPrefsValue);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static SharedPreferences getCurrentAccount() {
|
||||
int account = Helper.GetPreferences().getInt("account", 0);
|
||||
return Helper.GetContext().getSharedPreferences("pref_account_manager" + (account != 0 ? account : ""), Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
private static int getAccountPrefsCount() {
|
||||
File[] prefs = new File(Helper.GetContext().getFilesDir().getParent(), "shared_prefs")
|
||||
.listFiles((dir, name) -> {
|
||||
return name.matches("pref_account_manager\\d+\\.xml");
|
||||
});
|
||||
return prefs != null ? prefs.length : 0;
|
||||
}
|
||||
|
||||
private static String withRegex(String base, String regex, String def) {
|
||||
Pattern pattern = Pattern.compile(regex);
|
||||
Matcher matcher = pattern.matcher(base);
|
||||
if (matcher.find()) {
|
||||
return matcher.group(1);
|
||||
}
|
||||
return def;
|
||||
}
|
||||
|
||||
public static List<MultiAccountItem> buildList() {
|
||||
List<MultiAccountItem> list = new ArrayList<>();
|
||||
for (int i = 0; i <= getAccountPrefsCount(); i++) {
|
||||
SharedPreferences prefs = Helper.GetContext().getSharedPreferences("pref_account_manager" + i, Context.MODE_PRIVATE);
|
||||
String keyVKAccount = prefs.getString("key_vk_account", "");
|
||||
if (!keyVKAccount.isEmpty()) {
|
||||
String name = withRegex(keyVKAccount, ".*\"name\":\\{.*?:\"(.*?)\"\\}.*", "");
|
||||
String avatarUrl = withRegex(keyVKAccount, ".*\"photo\":\\{.*?:\"(.*?)\"\\}.*", "https://vk.com/images/camera_200.png")
|
||||
.replace("\\/", "/");
|
||||
list.add(new MultiAccountItem(
|
||||
name, avatarUrl, i
|
||||
));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static boolean switchAccount(int i) {
|
||||
int account = Helper.GetPreferences().getInt("account", 0);
|
||||
if (account == i) return false;
|
||||
|
||||
Helper.GetPreferences().edit().putInt("account", i).commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void addAccount() {
|
||||
Helper.GetPreferences().edit().putInt("account", getAccountPrefsCount() + 1).commit();
|
||||
}
|
||||
|
||||
public static void deleteAccount(int i) {
|
||||
int account = Helper.GetPreferences().getInt("account", 0);
|
||||
SharedPreferences prefs = Helper.GetContext().getSharedPreferences("pref_account_manager" + i, Context.MODE_PRIVATE);
|
||||
prefs.edit().clear().commit();
|
||||
File file = new File(new File(Helper.GetContext().getFilesDir().getParent(), "shared_prefs"), "pref_account_manager" + i);
|
||||
if (file.exists()) file.delete();
|
||||
if (account == i && getAccountPrefsCount() > 0)
|
||||
switchAccount(buildList().get(0).index);
|
||||
}
|
||||
}
|
||||
@@ -42,8 +42,8 @@ import java.io.File;
|
||||
|
||||
import me.grishka.appkit.fragments.ToolbarFragment;
|
||||
import ru.vtosters.lite.tgs.TGPref;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.utils.Prefs;
|
||||
import ru.vtosters.lite.utils.Themes;
|
||||
|
||||
|
||||
+1
-1
@@ -8,8 +8,8 @@ import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.tgs.TGPref;
|
||||
import ru.vtosters.lite.tgs.TGRoot;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
package ru.vtosters.lite.ui.vkui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.view.View;
|
||||
|
||||
import com.vk.core.dialogs.bottomsheet.ModalBottomSheet;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import ru.vtosters.lite.utils.Helper;
|
||||
|
||||
public class ModalBottomSheetProxy {
|
||||
public final ModalBottomSheet.a builder;
|
||||
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
package ru.vtosters.lite.utils;
|
||||
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
import static ru.vtosters.lite.utils.Helper.GetContext;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class AccountManager {
|
||||
public static SharedPreferences getCurrentAccount() {
|
||||
String Value = ru.vtosters.lite.utils.Helper.GetPreferences().getString("account", "");
|
||||
return Helper.GetContext().getSharedPreferences("pref_account_manager" + Value, MODE_PRIVATE);
|
||||
}
|
||||
|
||||
public static void MigrateToNewType() {
|
||||
SharedPreferences OldPrefs = Helper.GetContext().getSharedPreferences("pref_account_manager", MODE_PRIVATE);
|
||||
String OldPrefsValue = OldPrefs.getString("key_vk_account", "");
|
||||
SharedPreferences NewPrefs = GetContext().getSharedPreferences("pref_account_manager0", MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = NewPrefs.edit();
|
||||
editor.putString("key_vk_account", OldPrefsValue);
|
||||
editor.commit();
|
||||
}
|
||||
|
||||
public static String getCurrentAccountName() {
|
||||
String Value = ru.vtosters.lite.utils.Helper.GetPreferences().getString("account", "");
|
||||
return getName(Value);
|
||||
}
|
||||
|
||||
public static SharedPreferences getNeededAccount(String str) {
|
||||
return Helper.GetContext().getSharedPreferences("pref_account_manager" + str, MODE_PRIVATE);
|
||||
}
|
||||
|
||||
public static String getName(String str) {
|
||||
Pattern pattern = Pattern.compile(".*\"name\":\\{.*?:\"(.*?)\"\\}.*");
|
||||
Matcher matcher = pattern.matcher(getNeededAccount(str).getString("key_vk_account", ""));
|
||||
if (matcher.find()) {
|
||||
String group = matcher.group(1);
|
||||
return group;
|
||||
}
|
||||
return "err";
|
||||
}
|
||||
|
||||
public static int getAvalibleAcc() {
|
||||
int intg = 0;
|
||||
while (true) {
|
||||
if (getName(Integer.toString(intg)) != "err") {
|
||||
intg++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
;
|
||||
return intg;
|
||||
}
|
||||
|
||||
public static CharSequence[] getAccAmountNames() {
|
||||
int intg = 0;
|
||||
ArrayList<String> list = new ArrayList<String>();
|
||||
while (true) {
|
||||
if (getName(Integer.toString(intg)) != "err") {
|
||||
list.add(getName(Integer.toString(intg)));
|
||||
intg++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
};
|
||||
final CharSequence[] charSequenceItems = list.toArray(new CharSequence[list.size()]);
|
||||
return charSequenceItems;
|
||||
}
|
||||
|
||||
public static CharSequence[] getAccAmount() {
|
||||
int intg = 0;
|
||||
ArrayList<String> list = new ArrayList<String>();
|
||||
while (true) {
|
||||
if (getName(Integer.toString(intg)) != "err") {
|
||||
list.add(Integer.toString(intg));
|
||||
intg++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
};
|
||||
final CharSequence[] charSequenceItems = list.toArray(new CharSequence[list.size()]);
|
||||
return charSequenceItems;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import com.vk.dto.common.VideoFile;
|
||||
|
||||
@@ -27,40 +26,31 @@ public class ExternalLinkHandler {
|
||||
private static final Map<String, String> qualities = new HashMap<>();
|
||||
|
||||
public static boolean parseVideoFile(VideoFile file, Context context) {
|
||||
if (!Prefs.isEnableExternalOpening()) return false;
|
||||
|
||||
if (checkYoutubeLink(file)) {
|
||||
|
||||
try {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse(file.n));
|
||||
|
||||
context.startActivity(intent);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
} else if (checkVkVideo(file)) {
|
||||
|
||||
if (qualities.size() == 1) {
|
||||
|
||||
startExternalVideo((String) qualities.values().toArray()[0]);
|
||||
|
||||
} else {
|
||||
|
||||
String[] titles = qualities.keySet().toArray(new String[0]);
|
||||
|
||||
new AlertDialog.Builder(context)
|
||||
.setItems(titles, ((dialog, which) -> {
|
||||
|
||||
startExternalVideo(qualities.get(titles[which]));
|
||||
|
||||
}))
|
||||
.show();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!Prefs.isEnableExternalOpening()) return false;
|
||||
|
||||
if (checkVkVideo(file)) {
|
||||
if (qualities.size() == 1) {
|
||||
startExternalVideo((String) qualities.values().toArray()[0]);
|
||||
} else {
|
||||
String[] titles = qualities.keySet().toArray(new String[0]);
|
||||
new AlertDialog.Builder(context)
|
||||
.setItems(titles, ((dialog, which) -> {
|
||||
startExternalVideo(qualities.get(titles[which]));
|
||||
}))
|
||||
.show();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -71,7 +61,6 @@ public class ExternalLinkHandler {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -119,28 +108,21 @@ public class ExternalLinkHandler {
|
||||
|
||||
String packageName = getMXPlayerPackageName();
|
||||
if (!Helper.isEmpty(packageName)) {
|
||||
|
||||
intent.setPackage(packageName);
|
||||
intent.setDataAndType(uri, "application/mp4");
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
} else {
|
||||
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.setDataAndType(uri, "video/mp4");
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
|
||||
}
|
||||
|
||||
Helper.GetContext().startActivity(intent);
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -135,4 +137,10 @@ public class Helper {
|
||||
public static boolean isEmpty(String str) {
|
||||
return str == null || str.isEmpty();
|
||||
}
|
||||
|
||||
public static boolean isNetworkConnected() {
|
||||
ConnectivityManager cm = (ConnectivityManager) GetContext().getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||
return activeNetwork != null ? activeNetwork.isConnectedOrConnecting() :false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package ru.vtosters.lite.utils;
|
||||
|
||||
import static android.view.View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
|
||||
import static ru.vtosters.lite.utils.Proxy.setProxy;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -11,7 +13,6 @@ import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
|
||||
import com.vk.about.Items;
|
||||
@@ -20,7 +21,6 @@ import com.vk.about.Items2;
|
||||
import com.vk.apps.AppsFragment;
|
||||
import com.vk.core.ui.themes.VKThemeHelper;
|
||||
import com.vk.core.util.Screen;
|
||||
import com.vk.discover.DiscoverFragment;
|
||||
import com.vk.fave.fragments.FaveTabFragment;
|
||||
import com.vk.menu.MenuFragment;
|
||||
import com.vk.music.fragment.MusicFragment;
|
||||
@@ -55,7 +55,8 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Scanner;
|
||||
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import ru.vtosters.lite.ui.fragments.dockbar.DockBarManager;
|
||||
import ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager;
|
||||
|
||||
public class Prefs {
|
||||
public static String VERSIONNAME = "2.0 DEV";
|
||||
@@ -106,6 +107,10 @@ public class Prefs {
|
||||
return BooleanFalse("adsgroup");
|
||||
}
|
||||
|
||||
public static boolean olddock() {
|
||||
return BooleanFalse("olddock");
|
||||
}
|
||||
|
||||
public static boolean adsslider() {
|
||||
return BooleanFalse("__dbg_no_slider_ads");
|
||||
}
|
||||
@@ -252,6 +257,7 @@ public class Prefs {
|
||||
String line = scanner.findInLine("VERSION_BUILD=.+");
|
||||
if (line != null)
|
||||
return line.replace("VERSION_BUILD=", "");
|
||||
return "0000000";
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
@@ -460,7 +466,7 @@ public class Prefs {
|
||||
}
|
||||
|
||||
public static boolean newvideo() {
|
||||
return BooleanFalse("newvideo");
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String widgetads() {
|
||||
@@ -468,15 +474,11 @@ public class Prefs {
|
||||
}
|
||||
|
||||
public static void setNavbarColor(Window window, int i) {
|
||||
if (navbar()) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
window.setNavigationBarColor(getNavbarColor());
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && VKThemeHelper.d()) {
|
||||
window.getDecorView().setSystemUiVisibility(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= 31 && VKThemeHelper.d()) {
|
||||
View decorView = window.getDecorView();
|
||||
Intrinsics.a((Object) decorView, "view");
|
||||
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() | 8192);
|
||||
if (navbar() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
window.setNavigationBarColor(getNavbarColor());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -707,7 +709,7 @@ public class Prefs {
|
||||
setupFilters();
|
||||
fixGapps();
|
||||
setProxy();
|
||||
AccountManager.MigrateToNewType();
|
||||
MultiAccountManager.migrate();
|
||||
registerActivities(application);
|
||||
}
|
||||
|
||||
@@ -747,8 +749,15 @@ public class Prefs {
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean isUseAlternativeFragments() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static Class getStartFragment() {
|
||||
String string = ru.vtosters.lite.utils.Helper.GetPreferences().getString("start_value", "");
|
||||
String string = ru.vtosters.lite.utils.Helper.GetPreferences().getString("start_values", "");
|
||||
if (string.equals("default")) {
|
||||
return DockBarManager.getInstance().getSelectedTabs().get(0).fragmentClass;
|
||||
}
|
||||
if (string.equals("newsfeed")) {
|
||||
return Feed2049.b.c();
|
||||
}
|
||||
@@ -764,7 +773,7 @@ public class Prefs {
|
||||
if (string.equals("friends")) {
|
||||
return FriendsFragment.class;
|
||||
}
|
||||
if (string.equals(NavigatorKeys.v)) {
|
||||
if (string.equals("photos")) {
|
||||
return PhotosFragment.class;
|
||||
}
|
||||
if (string.equals("videos")) {
|
||||
@@ -777,7 +786,7 @@ public class Prefs {
|
||||
return AppsFragment.class;
|
||||
}
|
||||
if (string.equals("discover")) {
|
||||
return DiscoverFragment.class;
|
||||
return Feed2049.b.e();
|
||||
}
|
||||
if (string.equals("notifications")) {
|
||||
return NotificationsContainerFragment.class;
|
||||
@@ -803,7 +812,7 @@ public class Prefs {
|
||||
if (string.equals("docs")) {
|
||||
return DocumentsViewFragment.class;
|
||||
}
|
||||
return string.equals("brtd") ? BirthdaysFragment.class : Feed2049.b.c();
|
||||
return string.equals("brtd") ? BirthdaysFragment.class : DockBarManager.getInstance().getSelectedTabs().get(0).fragmentClass;
|
||||
}
|
||||
|
||||
public static Context BaseContextLocale(Context context) {
|
||||
|
||||
@@ -10,9 +10,6 @@ import android.widget.ImageButton;
|
||||
import com.vk.core.d.RecoloredDrawable;
|
||||
import com.vk.core.ui.themes.VKThemeHelper;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.auth.VKAccountManager;
|
||||
|
||||
import ru.vtosters.lite.f0x1d.VTVerifications;
|
||||
|
||||
public class Themes {
|
||||
public static int getAccentColor() {
|
||||
|
||||
@@ -4,14 +4,14 @@ import android.util.Base64;
|
||||
import android.util.Log;
|
||||
import android.webkit.WebView;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
public class VKUIInjector {
|
||||
private static boolean isLoaded = false;
|
||||
private static String loadedCSS = "";
|
||||
|
||||
+3
-4
@@ -68,14 +68,13 @@ if "%ERRORLEVEL%" == "0" (
|
||||
echo %ESC%[92mSuccessful%ESC%[0m
|
||||
) else (
|
||||
echo %ESC%[31mFailed%ESC%[0m
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo %ESC%[1;4mBuild apk...%ESC%[0m
|
||||
echo.
|
||||
cd smali\
|
||||
call java -jar ../scripts/apktool.jar b . -o ../smali/VTLite.apk --use-aapt2 -p ../scripts/framework/
|
||||
call java -jar ../scripts/apktool.jar b . -o ../scripts/VTLite.apk --use-aapt2 -p ../scripts/framework/
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
echo %ESC%[92mSuccessful%ESC%[0m
|
||||
) else (
|
||||
@@ -89,7 +88,7 @@ del assets\version.properties
|
||||
echo.
|
||||
echo %ESC%[1;4mSign apk...%ESC%[0m
|
||||
echo.
|
||||
call java -jar ../scripts/apksigner.jar sign --ks ../scripts/debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android VTLite.apk
|
||||
call java -jar ../scripts/apksigner.jar sign --ks ../scripts/debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android ../scripts/VTLite.apk
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
echo %ESC%[92mSuccessful%ESC%[0m
|
||||
) else (
|
||||
@@ -121,7 +120,7 @@ GOTO startinstall
|
||||
echo.
|
||||
echo %ESC%[1;4mInstall apk...%ESC%[0m
|
||||
echo.
|
||||
call adb install VTLite.apk
|
||||
call adb install ../scripts/VTLite.apk
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
echo %ESC%[92mSuccessful%ESC%[0m
|
||||
) else (
|
||||
|
||||
@@ -51,7 +51,6 @@ if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Успех!${NC}\n"
|
||||
else
|
||||
echo -e "${RED}Провал.${NC}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${BOLD}${UNDERLINE}Сборка apk..${NC}"
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ"/>
|
||||
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE"/>
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
<application android:allowBackup="false" android:debuggable="false" android:hardwareAccelerated="true" android:icon="@mipmap/vt_launcher" android:label="@string/app_name" android:largeHeap="true" android:name="com.vtosters.lite.VKApplication" android:networkSecurityConfig="@xml/network_security_config" android:resizeableActivity="true" android:roundIcon="@mipmap/vt_launcher_round" android:supportsRtl="true" android:theme="@style/BaseStyle">
|
||||
<application android:allowBackup="false" android:debuggable="false" android:hardwareAccelerated="true" android:icon="@mipmap/vt_launcher" android:label="@string/app_name" android:largeHeap="true" android:requestLegacyExternalStorage="true" android:preserveLegacyExternalStorage="true" android:name="com.vtosters.lite.VKApplication" android:networkSecurityConfig="@xml/network_security_config" android:resizeableActivity="true" android:roundIcon="@mipmap/vt_launcher_round" android:supportsRtl="true" android:theme="@style/BaseStyle">
|
||||
<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBlTHhNGPj7ktPWrUo_d4YJs_Sn_zsISZg"/>
|
||||
<meta-data android:name="com.google.android.geo.API_SECRET" android:value="yu6ZAA0OWO3kmr4es7fGtSmiyfk="/>
|
||||
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id"/>
|
||||
|
||||
@@ -41,8 +41,16 @@ cпocоб зaрaбoтать
|
||||
в источник
|
||||
В источник
|
||||
в источнике
|
||||
в иcтoчнике
|
||||
В иcтoчнике
|
||||
в Иcтoчнике
|
||||
в Источнике
|
||||
В источнике
|
||||
В Источнике
|
||||
в иcтoчник
|
||||
В иcтoчник
|
||||
в Иcтoчник
|
||||
в Источник
|
||||
В Источник
|
||||
в закрепленном комментарии
|
||||
в Закрепленном комментарии
|
||||
в закрепленном Комментарии
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/white" />
|
||||
<solid android:color="?background_content" />
|
||||
<corners android:radius="4.0dip" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/music_bottom_menu_header_bg" />
|
||||
<solid android:color="?header_background" />
|
||||
<corners android:topLeftRadius="8.0dip" android:topRightRadius="8.0dip" />
|
||||
</shape>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape android:shape="rectangle"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<stroke android:width="1.0dip" android:color="#ff518bcc" />
|
||||
<stroke android:width="1.0dip" android:color="?accent" />
|
||||
<padding android:left="12.0dip" android:top="6.0dip" android:right="12.0dip" android:bottom="7.0dip" />
|
||||
<corners android:radius="4.0dip" />
|
||||
</shape>
|
||||
@@ -9,7 +9,7 @@
|
||||
</item>
|
||||
<item android:state_pressed="true">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/white" />
|
||||
<solid android:color="?background_content" />
|
||||
<corners android:radius="4.0dip" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="vertical" android:id="@id/appkit_loader_root" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<android.support.v7.widget.Toolbar android:id="@id/toolbar" android:background="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="3.0dip" app:popupTheme="?actionBarPopupTheme" app:theme="?actionBarTheme" style="?actionBarTheme">
|
||||
<android.support.v7.widget.Toolbar android:id="@id/toolbar" android:background="?header_background" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="3.0dip" app:popupTheme="?actionBarPopupTheme" app:theme="?actionBarTheme" style="?actionBarTheme">
|
||||
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/apps_header" android:paddingLeft="16.0dip" android:paddingRight="16.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:weightSum="1.0" android:minHeight="80.0dip">
|
||||
<com.vk.imageloader.view.VKImageView android:id="@android:id/icon" android:layout_width="48.0dip" android:layout_height="48.0dip" app:placeholderImage="@drawable/placeholder_game_dark_48" app:roundedCornerRadius="10.0dip" />
|
||||
<LinearLayout android:orientation="vertical" android:paddingLeft="12.0dip" android:paddingRight="12.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout android:id="@id/mentions_cl" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@id/divider" android:layout_below="@id/dialog_header_container"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<FrameLayout android:id="@id/mentions_container" android:background="#ffffffff" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="6.0dip" app:layout_behavior="com.vk.core.ui.VkBottomSheetBehavior" />
|
||||
<FrameLayout android:id="@id/mentions_container" android:background="?tabbar_background" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:elevation="6.0dip" app:layout_behavior="com.vk.core.ui.VkBottomSheetBehavior" />
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.vk.core.ui.RecursiveSwipeRefreshLayout android:id="@id/refresh_layout" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<FrameLayout android:id="@id/content_wrap" android:background="?tabbar_background" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||
<FrameLayout android:id="@id/content_wrap" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||
<me.grishka.appkit.views.UsableRecyclerView android:id="@id/list" android:scrollbars="vertical" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" />
|
||||
<include android:id="@id/empty" layout="@layout/appkit_empty" />
|
||||
</FrameLayout>
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
<LinearLayout android:gravity="center_horizontal" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<com.vk.imageloader.view.VKImageView android:id="@id/ivAppIcon" android:layout_width="36.0dip" android:layout_height="36.0dip" android:layout_marginBottom="12.0dip" app:roundedCornerRadius="8.0dip" />
|
||||
<TextView android:textColor="@color/black" android:id="@id/tvAppName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="32.0dip" android:fontFamily="@string/font_family_regular" style="@style/VKUIText.Title2" />
|
||||
<TextView android:textColor="?accent" android:id="@id/tvAppName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="32.0dip" android:fontFamily="@string/font_family_regular" style="@style/VKUIText.Title2" />
|
||||
</LinearLayout>
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<android.support.design.widget.AppBarLayout android:id="@id/vk_app_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" app:layout_behavior="com.vk.core.view.FixAppBarLayoutBehavior" style="@style/VKAppBar">
|
||||
<include android:id="@id/search" android:layout_width="fill_parent" android:layout_height="52.0dip" layout="@layout/toolbar_modern_search_view" />
|
||||
<android.support.design.widget.TabLayout android:id="@id/tabs" android:layout_width="wrap_content" android:layout_height="48.0dip" app:tabGravity="fill" app:tabIndicatorColor="@color/white" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="@color/white" app:tabTextColor="@color/white_alpha60" style="@style/CatalogTabLayout" />
|
||||
<android.support.design.widget.TabLayout android:id="@id/tabs" android:layout_width="wrap_content" android:layout_height="48.0dip" app:tabGravity="fill" app:tabIndicatorColor="?accent" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="?text_primary" app:tabTextColor="?text_secondary" style="@style/CatalogTabLayout" />
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
<android.support.v4.view.ViewPager android:id="@id/viewpager" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="fill_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_constraintTop_toBottomOf="@id/vk_app_bar" />
|
||||
<com.vk.catalog.core.ui.view.CatalogLoadingAndErrorView android:layout_gravity="center_vertical" android:id="@id/loading_and_error_view" android:background="?background_content" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_constraintTop_toBottomOf="@id/vk_app_bar" />
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0dip" android:textColor="@color/main_text" android:textColorHighlight="#802b587a" android:textColorLink="#ff2b587a" android:linksClickable="false" android:id="@id/post_view" android:paddingLeft="@dimen/post_side_padding" android:paddingTop="@dimen/good_description_padding_bottom" android:paddingRight="@dimen/post_side_padding" android:paddingBottom="@dimen/good_description_padding_bottom" android:duplicateParentState="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lineSpacingExtra="4.0dip"
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0dip" android:textColor="?text_primary" android:textColorHighlight="#802b587a" android:textColorLink="#ff2b587a" android:linksClickable="false" android:id="@id/post_view" android:paddingLeft="@dimen/post_side_padding" android:paddingTop="@dimen/good_description_padding_bottom" android:paddingRight="@dimen/post_side_padding" android:paddingBottom="@dimen/good_description_padding_bottom" android:duplicateParentState="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lineSpacingExtra="4.0dip"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" />
|
||||
@@ -4,7 +4,7 @@
|
||||
<TextView android:textSize="16.0dip" android:textColor="#ff99a2ad" android:ellipsize="marquee" android:gravity="center" android:id="@id/docs_item_type" android:background="@drawable/docs_thumb_bg" android:padding="5.0dip" android:layout_width="64.0dip" android:layout_height="48.0dip" android:layout_marginTop="8.0dip" android:layout_marginRight="8.0dip" android:layout_marginBottom="8.0dip" android:singleLine="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:fontFamily="@string/font_family_medium" />
|
||||
<LinearLayout android:gravity="center_vertical" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:layout_toRightOf="@id/docs_item_type" android:layout_centerVertical="true">
|
||||
<TextView android:textSize="16.0dip" android:textColor="?text_primary" android:ellipsize="marquee" android:id="@id/docs_item_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="#85000205" android:ellipsize="marquee" android:id="@id/docs_item_info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:singleLine="true" android:layout_below="@id/docs_item_title" android:layout_alignLeft="@id/docs_item_title" android:layout_alignParentRight="true" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="?text_secondary" android:ellipsize="marquee" android:id="@id/docs_item_info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:singleLine="true" android:layout_below="@id/docs_item_title" android:layout_alignLeft="@id/docs_item_title" android:layout_alignParentRight="true" />
|
||||
</LinearLayout>
|
||||
<com.vk.imageloader.view.VKImageView android:id="@id/docs_item_thumb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/docs_item_type" android:layout_alignTop="@id/docs_item_type" android:layout_alignRight="@id/docs_item_type" android:layout_alignBottom="@id/docs_item_type" vk:actualImageScaleType="centerCrop" vk:roundedCornerRadius="2.0dip" />
|
||||
</RelativeLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.vtosters.lite.ui.ErrorView android:gravity="center" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
<com.vtosters.lite.ui.ErrorView android:gravity="center" android:orientation="vertical" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<ImageView android:id="@id/error_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_warning_light" />
|
||||
<TextView android:textSize="16.0sp" android:gravity="center" android:layout_gravity="center_horizontal" android:id="@id/error_text" android:paddingLeft="32.0dip" android:paddingRight="32.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/liblists_err_text" android:freezesText="true" style="@style/VKUIText.Subhead" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout android:orientation="vertical" android:id="@id/appkit_loader_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
<android.support.design.widget.CoordinatorLayout android:orientation="vertical" android:background="?background_content" android:id="@id/appkit_loader_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<com.vk.fave.views.FaveAllPaginatedView android:id="@id/rpb_list" android:layout_width="fill_parent" android:layout_height="fill_parent" app:layout_behavior="@string/toolbar_behavior_scrolling" />
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
@@ -4,11 +4,11 @@
|
||||
<android.support.design.widget.AppBarLayout android:id="@id/vk_app_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" style="@style/VKAppBar">
|
||||
<android.support.v7.widget.Toolbar android:id="@id/toolbar" android:background="?header_background" android:layout_width="fill_parent" android:layout_height="?actionBarSize" app:navigationContentDescription="@string/accessibility_toolbar_back" app:popupTheme="?actionBarPopupTheme" app:theme="?actionBarTheme" style="?actionBarTheme">
|
||||
<LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12.0dip">
|
||||
<TextView android:textSize="20.0sp" android:textColor="@color/white" android:id="@id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@string/font_family_medium" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="@color/white_opacity40" android:ellipsize="end" android:id="@id/subtitle" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="1" android:maxEms="20" android:fontFamily="@string/font_family_medium" />
|
||||
<TextView android:textSize="20.0sp" android:textColor="?text_primary" android:id="@id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@string/font_family_medium" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:ellipsize="end" android:id="@id/subtitle" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="1" android:maxEms="20" android:fontFamily="@string/font_family_medium" />
|
||||
</LinearLayout>
|
||||
</android.support.v7.widget.Toolbar>
|
||||
<android.support.design.widget.TabLayout android:id="@id/tabs" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="48.0dip" app:tabGravity="fill" app:tabIndicatorColor="#ffffffff" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="#ffffffff" app:tabTextColor="#99ffffff" />
|
||||
<android.support.design.widget.TabLayout android:id="@id/tabs" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="48.0dip" app:tabGravity="fill" app:tabIndicatorColor="?accent" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="?text_primary" app:tabTextColor="?text_secondary" />
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
<ProgressBar android:layout_gravity="center" android:id="@id/loading" android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_marginTop="56.0dip" />
|
||||
<com.vk.core.view.VKViewPager android:id="@id/viewpager" android:background="#ffffffff" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_constraintTop_toBottomOf="@id/vk_app_bar" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge android:layout_width="fill_parent" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<android.support.design.widget.TabLayout android:id="@id/feed_likes_tablayout" android:layout_width="fill_parent" android:layout_height="@dimen/feed_likes_filter_height" android:layout_weight="1.0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tabBackground="?background_content" app:tabGravity="fill" app:tabIndicatorColor="?accent" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="?accent" app:tabTextAppearance="@style/FeedLikesTabStyle" app:tabTextColor="?text_primary" />
|
||||
<android.support.design.widget.TabLayout android:background="?background_content" android:id="@id/feed_likes_tablayout" android:layout_width="fill_parent" android:layout_height="@dimen/feed_likes_filter_height" android:layout_weight="1.0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tabBackground="?background_content" app:tabGravity="fill" app:tabIndicatorColor="?accent" app:tabMaxWidth="0.0dip" app:tabMode="scrollable" app:tabSelectedTextColor="?accent" app:tabTextAppearance="@style/FeedLikesTabStyle" app:tabTextColor="?text_primary" />
|
||||
</merge>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"
|
||||
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:backgroundTint="?background_content" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:textSize="14.0dip" android:textColor="@color/text_game_gray" android:id="@id/title" android:paddingLeft="@dimen/friends_header_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="#ff8c8d8f" android:gravity="center" android:id="@id/counter" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:maxLines="1" android:fontFamily="@string/font_family_medium" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="?text_primary" android:id="@id/title" android:paddingLeft="@dimen/friends_header_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="?text_secondary" android:gravity="center" android:id="@id/counter" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:maxLines="1" android:fontFamily="@string/font_family_medium" />
|
||||
<Space android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="?accent" android:id="@id/action" android:background="@drawable/highlight" android:paddingLeft="@dimen/friends_header_padding" android:paddingTop="@dimen/friends_header_top_padding" android:paddingRight="@dimen/friends_header_padding" android:paddingBottom="@dimen/friends_header_top_padding" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/show_all" />
|
||||
</LinearLayout>
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.vk.core.ui.RecursiveSwipeRefreshLayout android:id="@id/refresh_layout" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
<com.vk.core.ui.RecursiveSwipeRefreshLayout android:background="?background_content" android:id="@id/refresh_layout" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<com.vtosters.lite.ui.layout.ExpandableBarLayout android:id="@id/expandable" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/toolbar">
|
||||
<FrameLayout android:id="@id/content_wrap" android:background="?tabbar_background" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||
<FrameLayout android:id="@id/content_wrap" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||
<me.grishka.appkit.views.UsableRecyclerView android:id="@id/list" android:scrollbars="vertical" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" />
|
||||
<include android:id="@id/empty" layout="@layout/appkit_empty" />
|
||||
</FrameLayout>
|
||||
<TextView android:textSize="16.0dip" android:textColor="#ff6a6f75" android:gravity="center" android:id="@id/balance" android:background="#fff7f7f7" android:layout_width="fill_parent" android:layout_height="40.0dip" />
|
||||
<TextView android:textSize="16.0dip" android:textColor="?text_primary" android:gravity="center" android:id="@id/balance" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="40.0dip" />
|
||||
</com.vtosters.lite.ui.layout.ExpandableBarLayout>
|
||||
</com.vk.core.ui.RecursiveSwipeRefreshLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="vertical" android:background="@android:color/white" android:paddingLeft="@dimen/post_side_padding" android:paddingTop="8.0dip" android:paddingRight="@dimen/post_side_padding" android:paddingBottom="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"
|
||||
<LinearLayout android:orientation="vertical" android:background="?background_content" android:paddingLeft="@dimen/post_side_padding" android:paddingTop="8.0dip" android:paddingRight="@dimen/post_side_padding" android:paddingBottom="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:id="@android:id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="36.0dip" android:text="@string/write_to_the_good_owner" style="@style/MaterialBlueButton" />
|
||||
</LinearLayout>
|
||||
@@ -2,7 +2,7 @@
|
||||
<FrameLayout android:layout_width="fill_parent" android:layout_height="160.0dip"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<LinearLayout android:layout_gravity="center" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingStart="20.0dip" android:paddingEnd="20.0dip">
|
||||
<TextView android:textSize="20.0sp" android:textColor="@color/gray_1000" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/identity_title" android:fontFamily="@font/roboto_medium" />
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0sp" android:textColor="@color/gray_400" android:gravity="center_horizontal" android:id="@id/identity_desc_text" android:paddingTop="6.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
|
||||
<TextView android:textSize="20.0sp" android:textColor="?text_primary" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/identity_title" android:fontFamily="@font/roboto_medium" />
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0sp" android:textColor="?text_secondary" android:gravity="center_horizontal" android:id="@id/identity_desc_text" android:paddingTop="6.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout android:background="@drawable/bottom_divider_bg" android:layout_width="fill_parent" android:layout_height="72.0dip" android:paddingStart="16.0dip"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:textSize="16.0sp" android:textColor="@color/black" android:layout_gravity="top" android:id="@id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14.0dip" android:maxLines="1" android:lines="1" android:singleLine="true" android:layout_marginEnd="58.0dip" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="@color/gray_400" android:layout_gravity="bottom" android:id="@id/subtitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" android:maxLines="1" android:lines="1" android:singleLine="true" android:layout_marginEnd="58.0dip" />
|
||||
<TextView android:textSize="16.0sp" android:textColor="?text_primary" android:layout_gravity="top" android:id="@id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14.0dip" android:maxLines="1" android:lines="1" android:singleLine="true" android:layout_marginEnd="58.0dip" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:layout_gravity="bottom" android:id="@id/subtitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" android:maxLines="1" android:lines="1" android:singleLine="true" android:layout_marginEnd="58.0dip" />
|
||||
<ImageView android:layout_gravity="end|center" android:id="@id/check" android:layout_width="48.0dip" android:layout_height="48.0dip" android:scaleType="centerInside" android:layout_marginEnd="4.0dip" />
|
||||
</FrameLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_gravity="center_horizontal" android:orientation="horizontal" android:padding="16.0dip" android:layout_width="@dimen/money_transfer_btn_width" android:layout_height="wrap_content"
|
||||
<LinearLayout android:layout_gravity="center_horizontal" android:background="?background_content" android:orientation="horizontal" android:padding="16.0dip" android:layout_width="@dimen/money_transfer_btn_width" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:textSize="16.0sp" android:id="@id/fl_send_money" android:layout_width="0.0dip" android:layout_height="44.0dip" android:text="@string/money_transfer_send" android:layout_weight="0.5" style="@style/primary_button" />
|
||||
<View android:id="@id/fl_divider" android:layout_width="12.0dip" android:layout_height="0.0dip" />
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<ViewAnimator android:id="@id/content_animator" android:paddingTop="?actionBarSize" android:layout_width="fill_parent" android:layout_height="fill_parent">
|
||||
<include layout="@layout/music_page" />
|
||||
</ViewAnimator>
|
||||
<LinearLayout android:orientation="horizontal" android:background="?accent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?actionBarSize" style="@style/Toolbar">
|
||||
<LinearLayout android:orientation="horizontal" android:background="?tabbar_background" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?actionBarSize" style="@style/Toolbar">
|
||||
<ImageView android:layout_gravity="center_vertical" android:id="@id/back_btn" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_back_24" android:contentDescription="@string/music_talkback_go_back" android:layout_marginStart="4.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" style="@style/ActionButton.White" />
|
||||
<android.support.constraint.ConstraintLayout android:id="@id/toolbar_header" android:background="@drawable/music_selectable_bg" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginStart="12.0dip" android:layout_marginEnd="40.0dip">
|
||||
<com.vk.imageloader.view.VKCircleImageView android:layout_gravity="center_vertical" android:id="@id/user_logo" android:layout_width="40.0dip" android:layout_height="40.0dip" app:backgroundImage="@color/music_placeholder_bg" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:placeholderImage="@drawable/placeholder_user_40" />
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
<android.support.constraint.ConstraintLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="160.0dip"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<com.vk.music.view.ThumbsImageView android:id="@id/audio_image" android:layout_width="@dimen/music_playlist_image_big" android:layout_height="@dimen/music_playlist_image_big" android:layout_marginTop="16.0dip" android:layout_marginStart="16.0dip" app:backgroundImage="@color/music_placeholder_bg" app:layout_constraintEnd_toStartOf="@id/audio_title" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:roundedCornerRadius="@dimen/music_image_rounding_corners" app:tiv_placeholder_resource="@drawable/ic_podcast_48" />
|
||||
<com.vtosters.lite.ui.CorrectlyMeasuringTextView android:textSize="20.0dip" android:textColor="@color/music_text_primary" android:ellipsize="end" android:id="@id/audio_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20.0dip" android:maxLines="1" android:layout_marginStart="12.0dip" android:layout_marginEnd="16.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toStartOf="@id/audio_explicit" app:layout_constraintStart_toEndOf="@id/audio_image" app:layout_constraintTop_toTopOf="parent" style="@style/title_text" />
|
||||
<com.vtosters.lite.ui.CorrectlyMeasuringTextView android:textSize="20.0dip" android:textColor="?text_primary" android:ellipsize="end" android:id="@id/audio_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20.0dip" android:maxLines="1" android:layout_marginStart="12.0dip" android:layout_marginEnd="16.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toStartOf="@id/audio_explicit" app:layout_constraintStart_toEndOf="@id/audio_image" app:layout_constraintTop_toTopOf="parent" style="@style/title_text" />
|
||||
<ImageView android:id="@id/audio_explicit" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="@id/audio_title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/audio_title" />
|
||||
<TextView android:textStyle="normal" android:textColor="@color/music_link_text" android:id="@id/audio_artist" android:paddingTop="4.0dip" android:paddingBottom="4.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:fontFamily="sans-serif" app:layout_constraintEnd_toEndOf="@id/audio_title" app:layout_constraintStart_toStartOf="@id/audio_title" app:layout_constraintTop_toBottomOf="@id/audio_title" style="@style/TextStyle.SingleLine" />
|
||||
<TextView android:textStyle="normal" android:textColor="?text_secondary" android:id="@id/audio_artist" android:paddingTop="4.0dip" android:paddingBottom="4.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:fontFamily="sans-serif" app:layout_constraintEnd_toEndOf="@id/audio_title" app:layout_constraintStart_toStartOf="@id/audio_title" app:layout_constraintTop_toBottomOf="@id/audio_title" style="@style/TextStyle.SingleLine" />
|
||||
<ImageButton android:id="@id/play_pause" android:background="@drawable/podcast_snippet_blue_oval" android:layout_width="36.0dip" android:layout_height="36.0dip" android:src="@drawable/podcast_snippet_play_pause_blue" android:tint="?header_text" android:layout_marginStart="6.0dip" app:layout_constraintHorizontal_chainStyle="spread" app:layout_constraintStart_toEndOf="@id/audio_image" app:layout_constraintTop_toBottomOf="@id/audio_artist" />
|
||||
<SeekBar android:id="@id/seekbar" android:background="@null" android:padding="0.0dip" android:clickable="false" android:layout_width="0.0dip" android:layout_height="2.0dip" android:progressDrawable="@drawable/podcast_snippet_seekbar_blue" android:minHeight="2.0dip" android:thumb="@null" android:thumbOffset="0.0dip" app:layout_constraintBottom_toBottomOf="@id/play_pause" app:layout_constraintEnd_toStartOf="@id/time_text" app:layout_constraintStart_toEndOf="@id/play_pause" app:layout_constraintTop_toTopOf="@id/play_pause" />
|
||||
<TextView android:textSize="12.0dip" android:textColor="@color/subhead_gray" android:gravity="center" android:id="@id/time_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" android:layout_marginEnd="16.0dip" app:layout_constraintBottom_toBottomOf="@id/play_pause" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/play_pause" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="@color/medium_blue_gray" android:gravity="center_vertical" android:id="@id/audio_fave_toggle" android:background="@drawable/music_selectable_bg" android:layout_width="wrap_content" android:layout_height="40.0dip" android:text="@string/music_listen_later" android:drawablePadding="8.0dip" android:drawableStart="@drawable/ic_favorite_outline_24" android:fontFamily="@string/font_family_medium" android:paddingStart="12.0dip" android:paddingEnd="12.0dip" app:layout_constraintBottom_toBottomOf="@id/audio_image" app:layout_constraintStart_toEndOf="@id/audio_image" />
|
||||
<TextView android:textSize="12.0dip" android:textColor="?text_primary" android:gravity="center" android:id="@id/time_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:includeFontPadding="false" android:layout_marginEnd="16.0dip" app:layout_constraintBottom_toBottomOf="@id/play_pause" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/play_pause" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="?text_secondary" android:gravity="center_vertical" android:id="@id/audio_fave_toggle" android:background="@drawable/music_selectable_bg" android:layout_width="wrap_content" android:layout_height="40.0dip" android:text="@string/music_listen_later" android:drawablePadding="8.0dip" android:drawableStart="@drawable/ic_favorite_outline_24" android:fontFamily="@string/font_family_medium" android:paddingStart="12.0dip" android:paddingEnd="12.0dip" app:layout_constraintBottom_toBottomOf="@id/audio_image" app:layout_constraintStart_toEndOf="@id/audio_image" />
|
||||
<View android:id="@id/first_divider" android:background="#ff000000" android:layout_width="0.0dip" android:layout_height="0.5dip" android:layout_marginTop="12.0dip" android:alpha="0.12" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/audio_image" />
|
||||
<TextView android:textSize="15.0dip" android:textColor="@color/subhead_gray" android:gravity="center_vertical" android:id="@id/audio_title_2" android:paddingTop="12.0dip" android:paddingBottom="12.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="46.0dip" android:fontFamily="@string/font_family_medium" android:layout_marginStart="16.0dip" android:layout_marginEnd="16.0dip" android:layout_toEndOf="@id/playlist_image" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/first_divider" />
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0dip" android:textStyle="normal" android:textColor="@color/muted_black_old" android:id="@id/audio_description" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="8.0dip" android:fontFamily="sans-serif" android:layout_marginStart="16.0dip" android:layout_marginEnd="16.0dip" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/audio_title_2" />
|
||||
<TextView android:textSize="15.0dip" android:textColor="?text_primary" android:gravity="center_vertical" android:id="@id/audio_title_2" android:paddingTop="12.0dip" android:paddingBottom="12.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="46.0dip" android:fontFamily="@string/font_family_medium" android:layout_marginStart="16.0dip" android:layout_marginEnd="16.0dip" android:layout_toEndOf="@id/playlist_image" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/first_divider" />
|
||||
<com.vtosters.lite.ui.LinkedTextView android:textSize="15.0dip" android:textStyle="normal" android:textColor="?text_secondary" android:id="@id/audio_description" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="8.0dip" android:fontFamily="sans-serif" android:layout_marginStart="16.0dip" android:layout_marginEnd="16.0dip" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/audio_title_2" />
|
||||
<TextView android:textSize="13.0dip" android:textStyle="normal" android:textColor="@color/caption_gray" android:gravity="center" android:id="@id/audio_total_info" android:layout_width="fill_parent" android:layout_height="48.0dip" android:fontFamily="sans-serif" android:layout_toEndOf="@id/playlist_image" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/audio_description" />
|
||||
<View android:id="@id/second_divider" android:background="#ff000000" android:layout_width="0.0dip" android:layout_height="0.5dip" android:alpha="0.12" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/audio_total_info" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<ProgressBar android:id="@id/player_view_progress" android:layout_width="fill_parent" android:layout_height="2.0dip" android:max="100" android:indeterminate="false" android:progressDrawable="@drawable/drawer_player_progress" android:layout_toRightOf="@id/player_view_albumart" android:layout_alignParentRight="true" style="@style/Widget.AppCompat.ProgressBar.Horizontal" />
|
||||
<com.vk.music.view.ThumbsImageView android:layout_gravity="center_vertical" android:id="@id/image" android:layout_width="48.0dip" android:layout_height="48.0dip" android:layout_marginLeft="16.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" app:backgroundImage="@color/music_placeholder_bg" app:roundedCornerRadius="@dimen/music_image_rounding_corners" app:tiv_placeholder_resource="@drawable/ic_song_24" />
|
||||
<TextView android:textSize="16.0dip" android:textColor="#ff2c2d2e" android:ellipsize="end" android:gravity="center|left" android:layout_gravity="center_vertical" android:id="@id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="80.0dip" android:layout_marginRight="100.0dip" android:maxLines="1" android:includeFontPadding="false" android:layout_weight="1.0" />
|
||||
<TextView android:textSize="16.0dip" android:textColor="?text_primary" android:ellipsize="end" android:gravity="center|left" android:layout_gravity="center_vertical" android:id="@id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="80.0dip" android:layout_marginRight="100.0dip" android:maxLines="1" android:includeFontPadding="false" android:layout_weight="1.0" />
|
||||
<ImageButton android:layout_gravity="center|right" android:id="@id/play_pause" android:background="@drawable/highlight_circle" android:layout_width="48.0dip" android:layout_height="48.0dip" android:layout_marginRight="52.0dip" android:contentDescription="@string/music_talkback_play" />
|
||||
<ImageButton android:layout_gravity="center|right" android:id="@id/next" android:background="@drawable/highlight_circle" android:layout_width="48.0dip" android:layout_height="48.0dip" android:layout_marginRight="4.0dip" android:contentDescription="@string/music_talkback_next" />
|
||||
</FrameLayout>
|
||||
@@ -4,7 +4,7 @@
|
||||
<com.vk.attachpicker.widget.LocalImageView android:layout_gravity="center_vertical" android:id="@id/tiv_album_image" android:layout_width="48.0dip" android:layout_height="48.0dip" android:layout_marginLeft="8.0dip" android:scaleType="centerCrop" />
|
||||
<View android:layout_gravity="center_vertical" android:layout_width="1.0px" android:layout_height="48.0dip" />
|
||||
<LinearLayout android:layout_gravity="center_vertical" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip">
|
||||
<TextView android:textSize="16.0dip" android:textColor="?text_primary" android:gravity="bottom|center|left" android:id="@id/tv_title" android:paddingBottom="1.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
|
||||
<TextView android:textSize="16.0dip" android:textColor="#ffb9b9b9" android:gravity="bottom|center|left" android:id="@id/tv_title" android:paddingBottom="1.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
|
||||
<TextView android:textSize="14.0dip" android:textColor="#ff78797a" android:gravity="center|left|top" android:id="@id/tv_photos_count" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -17,7 +17,7 @@
|
||||
<FrameLayout android:id="@id/rl_bottom_bar" android:layout_width="fill_parent" android:layout_height="@dimen/picker_bottom_button_height">
|
||||
<TextView android:textSize="15.0sp" android:textColor="@color/picker_dark_icon" android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="64.0dip" android:layout_marginRight="64.0dip" android:text="@string/picker_crop_full" android:fontFamily="@string/font_family_medium" />
|
||||
<FrameLayout android:id="@id/fl_reset" android:background="#ffffffff" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="64.0dip" android:layout_marginRight="64.0dip">
|
||||
<TextView android:textSize="15.0sp" android:textColor="?accent" android:gravity="center" android:layout_gravity="center" android:id="@id/tv_reset" android:background="@drawable/picker_white_ripple_unbounded" android:paddingLeft="16.0dip" android:paddingRight="16.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/picker_reset" android:textAllCaps="true" android:fontFamily="@string/font_family_medium" />
|
||||
<TextView android:textSize="15.0sp" android:textColor="@color/accent_blue" android:gravity="center" android:layout_gravity="center" android:id="@id/tv_reset" android:background="@drawable/picker_white_ripple_unbounded" android:paddingLeft="16.0dip" android:paddingRight="16.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/picker_reset" android:textAllCaps="true" android:fontFamily="@string/font_family_medium" />
|
||||
</FrameLayout>
|
||||
<ImageView android:layout_gravity="start" android:id="@id/iv_cancel" android:background="@drawable/picker_white_ripple_unbounded" android:layout_width="@dimen/picker_bottom_button_height" android:layout_height="fill_parent" android:src="@drawable/picker_ic_close_24" android:scaleType="centerInside" android:tint="@color/picker_dark_icon" />
|
||||
<ImageView android:layout_gravity="end" android:id="@id/iv_done" android:background="@drawable/picker_white_ripple_unbounded" android:layout_width="@dimen/picker_bottom_button_height" android:layout_height="fill_parent" android:src="@drawable/ic_done_24" android:scaleType="centerInside" android:tint="?accent" />
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<TextView android:textSize="12.0sp" android:textColor="#ff909499" android:layout_gravity="bottom|center|left" android:id="@id/tv_left_offset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16.0dip" android:layout_marginBottom="8.0dip" />
|
||||
<TextView android:textSize="12.0sp" android:textColor="#ff909499" android:layout_gravity="bottom|center|right" android:id="@id/tv_right_offset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="16.0dip" android:layout_marginBottom="8.0dip" />
|
||||
</FrameLayout>
|
||||
<com.vk.attachpicker.widget.AnimatableTextView android:textSize="16.0sp" android:textColor="?accent" android:gravity="center" android:layout_gravity="bottom" android:id="@id/tv_attach" android:background="@drawable/picker_btn_white" android:layout_width="fill_parent" android:layout_height="@dimen/picker_bottom_button_height" android:text="@string/picker_done" android:textAllCaps="true" />
|
||||
<com.vk.attachpicker.widget.AnimatableTextView android:textSize="16.0sp" android:textColor="#ff528bcc" android:gravity="center" android:layout_gravity="bottom" android:id="@id/tv_attach" android:background="@drawable/picker_btn_white" android:layout_width="fill_parent" android:layout_height="@dimen/picker_bottom_button_height" android:text="@string/picker_done" android:textAllCaps="true" />
|
||||
<View android:layout_gravity="bottom" android:background="@color/picker_grey_divider" android:layout_width="fill_parent" android:layout_height="0.5dip" android:layout_marginBottom="@dimen/picker_bottom_button_height" />
|
||||
</FrameLayout>
|
||||
<View android:layout_gravity="bottom" android:id="@id/view_shadow" android:background="@drawable/picker_bg_attach_bottom_toolbar_shadow" android:layout_width="fill_parent" android:layout_height="8.0dip" android:layout_marginBottom="156.0dip" />
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<RelativeLayout style="@style/UserSmallRoot"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<com.vk.imageloader.view.VKImageView android:id="@id/photo" app:placeholderImage="@drawable/sticker_placeholder" style="@style/UserSmallPhoto" />
|
||||
<ImageButton android:id="@id/action" android:background="@drawable/rounded_list_selector" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_list_remove" android:layout_alignParentRight="true" android:layout_centerVertical="true" />
|
||||
<ImageButton android:id="@id/action" android:tint="?accent" android:background="@drawable/rounded_list_selector" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_list_remove" android:layout_alignParentRight="true" android:layout_centerVertical="true" />
|
||||
<TextView android:id="@id/title" android:layout_toLeftOf="@id/action" style="@style/UserSmallTitle" />
|
||||
</RelativeLayout>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.vtosters.lite.ui.FullWidthLinearLayout android:theme="?actionBarTheme" android:gravity="center" android:orientation="horizontal" android:paddingRight="2.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<EditText android:textSize="16.0dip" android:textColorHint="?searchViewTextColorHint" android:id="@id/search_input" android:background="@null" android:paddingRight="16.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:hint="@string/search" android:singleLine="true" android:layout_weight="1.0" android:inputType="textFilter|textCapSentences|textNoSuggestions" android:imeOptions="actionSearch" android:textCursorDrawable="?searchViewCursorDrawable" />
|
||||
<ImageView android:id="@id/search_clear" android:background="?actionBarItemBackground" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_cancel_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
<ImageView android:id="@id/search_voice" android:background="?actionBarItemBackground" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_voice_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
<ImageView android:id="@id/search_done" android:background="?actionBarItemBackground" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_check_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
<EditText android:textSize="16.0dip" android:textColorHint="?text_primary" android:id="@id/search_input" android:background="@null" android:paddingRight="16.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:hint="@string/search" android:singleLine="true" android:layout_weight="1.0" android:inputType="textFilter|textCapSentences|textNoSuggestions" android:imeOptions="actionSearch" android:textCursorDrawable="?searchViewCursorDrawable" />
|
||||
<ImageView android:id="@id/search_clear" android:background="?accent" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_cancel_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
<ImageView android:id="@id/search_voice" android:background="?accent" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_voice_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
<ImageView android:id="@id/search_done" android:background="?accent" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_check_24" android:scaleType="center" android:tint="?icon_secondary" />
|
||||
</com.vtosters.lite.ui.FullWidthLinearLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_gravity="center" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
<LinearLayout android:layout_gravity="center" android:orientation="vertical" android:background="?background_content" android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:textSize="16.0sp" android:gravity="center" android:layout_gravity="center_horizontal" android:id="@id/error_text" android:paddingLeft="32.0dip" android:paddingRight="32.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/liblists_err_text" android:freezesText="true" style="@style/VKUIText.Subhead" />
|
||||
<TextView android:ellipsize="end" android:layout_gravity="center_horizontal" android:id="@id/error_button" android:layout_width="wrap_content" android:layout_height="32.0dip" android:layout_marginTop="12.0dip" android:text="@string/liblists_retry" android:fontFamily="@string/font_family_medium" style="@style/tertiary_button" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="horizontal" android:id="@id/load_more_error" android:layout_width="fill_parent" android:layout_height="@dimen/footer_height"
|
||||
<LinearLayout android:orientation="horizontal" android:id="@id/load_more_error" android:background="?background_content" android:layout_width="fill_parent" android:layout_height="@dimen/footer_height"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:gravity="center_vertical" android:layout_gravity="center_vertical" android:id="@id/error_text" android:padding="16.0dip" android:layout_width="0.0px" android:layout_height="wrap_content" android:text="@string/liblists_err_text" android:singleLine="true" android:includeFontPadding="false" android:layout_weight="1.0" style="@style/VKUIText.Text" />
|
||||
<TextView android:gravity="center_vertical" android:layout_gravity="center_vertical" android:id="@id/error_button" android:layout_width="wrap_content" android:layout_height="32.0dip" android:text="@string/liblists_retry" android:includeFontPadding="false" style="@style/tertiary_button" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_gravity="center" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
<LinearLayout android:layout_gravity="center" android:background="?background_content" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:textSize="16.0sp" android:textColor="?text_secondary" android:gravity="center" android:layout_gravity="center_horizontal" android:id="@id/error_text" android:paddingLeft="32.0dip" android:paddingRight="32.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/comment_was_deleted" android:freezesText="true" style="@style/VKUIText.Subhead" />
|
||||
<TextView android:ellipsize="end" android:layout_gravity="center_horizontal" android:id="@id/error_button" android:layout_width="wrap_content" android:layout_height="36.0dip" android:layout_marginTop="16.0dip" android:text="@string/return_to_post" android:fontFamily="@string/font_family_medium" style="@style/primary_button" />
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:orientation="vertical" android:paddingTop="16.0dip" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<TextView android:textSize="14.0sp" android:textColor="@color/caption_gray" android:id="@id/vkim_link_hint" android:paddingLeft="@dimen/vkim_list_padding" android:paddingRight="@dimen/vkim_list_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_primary" android:id="@id/vkim_link_hint" android:paddingLeft="@dimen/vkim_list_padding" android:paddingRight="@dimen/vkim_list_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" />
|
||||
<FrameLayout android:paddingLeft="@dimen/vkim_list_padding" android:paddingRight="@dimen/vkim_list_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip">
|
||||
<TextView android:textSize="16.0sp" android:textColor="?text_primary" android:ellipsize="end" android:id="@id/vkim_chat_link" android:paddingTop="8.0dip" android:paddingBottom="8.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lines="1" />
|
||||
<com.pnikosis.materialishprogress.ProgressWheel android:layout_gravity="center" android:id="@id/vkim_progress" android:visibility="invisible" android:layout_width="24.0dip" android:layout_height="24.0dip" app:matProg_barColor="?accent" app:matProg_progressIndeterminate="true" />
|
||||
</FrameLayout>
|
||||
<include android:layout_width="fill_parent" android:layout_height="8.0dip" layout="@layout/vkim_section" />
|
||||
<LinearLayout android:orientation="horizontal" android:id="@id/vkim_share" android:background="?selectableItemBackground" android:paddingLeft="16.0dip" android:paddingRight="16.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="8.0dip">
|
||||
<android.support.v7.widget.AppCompatImageView android:layout_gravity="center_vertical" android:layout_width="24.0dip" android:layout_height="24.0dip" android:src="@drawable/ic_share_outline_24" android:tint="@color/light_blue" />
|
||||
<TextView android:text="@string/vkim_share" style="@style/VkIm.InviteLink.TextBtn" />
|
||||
@@ -19,5 +18,4 @@
|
||||
<android.support.v7.widget.AppCompatImageView android:layout_gravity="center_vertical" android:layout_width="24.0dip" android:layout_height="24.0dip" android:src="@drawable/ic_do_not_disturb_24" android:tint="@color/light_blue" />
|
||||
<TextView android:text="@string/vkim_chat_link_invalidate" style="@style/VkIm.InviteLink.TextBtn" />
|
||||
</LinearLayout>
|
||||
<include android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="8.0dip" layout="@layout/vkim_section" />
|
||||
</LinearLayout>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<View android:id="@id/dialog_actions_dim" android:background="?header_background" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" />
|
||||
<LinearLayout android:id="@id/dialog_actions_list_container" android:background="@drawable/vkim_bg_overlay" android:padding="16.0dip" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="-8.0dip" android:layout_marginStart="-8.0dip" android:layout_marginEnd="-8.0dip" android:backgroundTint="?tabbar_background">
|
||||
<View android:id="@id/dialog_actions_dim" android:background="?tabbar_background" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" />
|
||||
<LinearLayout android:id="@id/dialog_actions_list_container" android:background="@drawable/vkim_bg_overlay" android:padding="16.0dip" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="-8.0dip" android:layout_marginStart="-8.0dip" android:layout_marginEnd="-8.0dip" android:backgroundTint="?background_content">
|
||||
<com.vk.im.ui.views.dialog_actions.DialogActionsListView android:id="@id/dialog_actions_list_content" android:paddingTop="8.0dip" android:paddingBottom="8.0dip" android:fadingEdge="none" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" app:vklib_alv_dividerColor="#1e000000" app:vklib_alv_dividerHeight="16.0dip" app:vklib_alv_dividerSize="0.5dip" app:vklib_alv_optionBackground="@drawable/vkim_ripple_dark" app:vklib_alv_optionIconLabelSpace="20.0dip" app:vklib_alv_optionIconTint="#ffaaaeb3" app:vklib_alv_optionLabelTextColor="?text_primary" app:vklib_alv_optionLabelTextSize="16.0sp" app:vklib_alv_optionPaddingEnd="20.0dip" app:vklib_alv_optionPaddingStart="20.0dip" />
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
@@ -3,6 +3,6 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<android.support.v7.widget.AppCompatImageView android:id="@id/vkim_audio_play_icon" android:layout_width="16.0dip" android:layout_height="18.0dip" android:layout_marginStart="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" />
|
||||
<TextView android:textSize="16.0sp" android:textColor="?text_primary" android:id="@id/vkim_title" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginTop="12.0dip" android:layout_marginBottom="4.0dip" android:lines="1" android:layout_marginStart="16.0dip" android:layout_marginEnd="8.0dip" app:layout_constraintBottom_toTopOf="@id/vkim_artist" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintLeft_toRightOf="@id/vkim_audio_play_icon" app:layout_constraintRight_toLeftOf="@id/vkim_duration" app:layout_constraintTop_toTopOf="parent" app:layout_goneMarginStart="16.0dip" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="#ff909499" android:id="@id/vkim_artist" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" android:lines="1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintLeft_toLeftOf="@id/vkim_title" app:layout_constraintRight_toRightOf="@id/vkim_title" app:layout_constraintTop_toBottomOf="@id/vkim_title" />
|
||||
<TextView android:textColor="#ff909499" android:id="@id/vkim_duration" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:id="@id/vkim_artist" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginBottom="16.0dip" android:lines="1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintLeft_toLeftOf="@id/vkim_title" app:layout_constraintRight_toRightOf="@id/vkim_title" app:layout_constraintTop_toBottomOf="@id/vkim_title" />
|
||||
<TextView android:textColor="?text_secondary" android:id="@id/vkim_duration" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
@@ -4,7 +4,7 @@
|
||||
<TextView android:textSize="16.0sp" android:textColor="#ff99a2ad" android:ellipsize="marquee" android:gravity="center" android:id="@id/vkim_doc_item_type" android:background="@drawable/vkim_bg_doc" android:padding="5.0dip" android:layout_width="64.0dip" android:layout_height="48.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" android:singleLine="true" android:layout_alignParentTop="true" android:textAllCaps="true" android:fontFamily="@string/font_family_medium" android:layout_marginEnd="8.0dip" android:layout_alignParentStart="true" />
|
||||
<LinearLayout android:gravity="center_vertical" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginStart="4.0dip" android:layout_toEndOf="@id/vkim_doc_item_type">
|
||||
<TextView android:textSize="16.0sp" android:textColor="?text_primary" android:ellipsize="marquee" android:id="@id/vkim_docs_item_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="#85000205" android:ellipsize="marquee" android:id="@id/vkim_docs_item_info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:singleLine="true" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:ellipsize="marquee" android:id="@id/vkim_docs_item_info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:singleLine="true" />
|
||||
</LinearLayout>
|
||||
<com.vk.im.ui.views.FrescoImageView android:id="@id/vkim_docs_item_thumb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/vkim_doc_item_type" android:layout_alignBottom="@id/vkim_doc_item_type" android:layout_alignStart="@id/vkim_doc_item_type" android:layout_alignEnd="@id/vkim_doc_item_type" app:vkim_cornerRadius="2.0dip" app:vkim_scaleType="center_crop" />
|
||||
</RelativeLayout>
|
||||
@@ -7,6 +7,6 @@
|
||||
</FrameLayout>
|
||||
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingStart="12.0dip">
|
||||
<TextView android:textSize="15.0sp" android:textColor="?text_primary" android:ellipsize="end" android:id="@id/vkim_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLines="2" android:lines="2" android:lineSpacingExtra="2.0dip" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="#ff909499" android:ellipsize="end" android:id="@id/vkim_link" android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLines="1" android:lines="1" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:ellipsize="end" android:id="@id/vkim_link" android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLines="1" android:lines="1" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -4,6 +4,6 @@
|
||||
<com.vk.im.ui.views.FrescoImageView android:id="@id/image" android:layout_width="136.0dip" android:layout_height="77.0dip" android:layout_marginTop="8.0dip" android:layout_marginBottom="8.0dip" android:layout_marginStart="16.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:vkim_cornerRadius="2.0dip" app:vkim_placeholderDrawable="@drawable/ic_videos_placeholder" app:vkim_scaleType="center_crop" />
|
||||
<TextView android:textSize="12.0sp" android:textColor="@color/white" android:id="@id/duration" android:background="@drawable/bg_doc_label" android:paddingLeft="4.0dip" android:paddingTop="2.0dip" android:paddingRight="4.0dip" android:paddingBottom="2.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="4.0dip" android:fontFamily="@font/roboto_medium" android:layout_marginEnd="4.0dip" app:layout_constraintBottom_toBottomOf="@id/image" app:layout_constraintEnd_toEndOf="@id/image" />
|
||||
<ImageButton android:id="@id/options" android:background="?selectableItemBackgroundBorderless" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_marginTop="8.0dip" android:src="@drawable/ic_actions_small_24" android:tint="#ffabafb3" android:layout_marginEnd="8.0dip" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
|
||||
<TextView android:textSize="15.0sp" android:ellipsize="end" android:id="@id/title" android:layout_width="0.0dip" android:layout_height="wrap_content" android:maxLines="2" android:lineSpacingExtra="2.0dip" android:layout_marginStart="12.0dip" android:layout_marginEnd="4.0dip" app:layout_constraintLeft_toRightOf="@id/image" app:layout_constraintRight_toLeftOf="@id/options" app:layout_constraintTop_toTopOf="@id/image" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="#ff909499" android:id="@id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lineSpacingExtra="2.0dip" android:layout_marginStart="12.0dip" app:layout_constraintBottom_toBottomOf="@id/image" app:layout_constraintLeft_toRightOf="@id/image" />
|
||||
<TextView android:textSize="15.0sp" android:textColor="?text_primary" android:ellipsize="end" android:id="@id/title" android:layout_width="0.0dip" android:layout_height="wrap_content" android:maxLines="2" android:lineSpacingExtra="2.0dip" android:layout_marginStart="12.0dip" android:layout_marginEnd="4.0dip" app:layout_constraintLeft_toRightOf="@id/image" app:layout_constraintRight_toLeftOf="@id/options" app:layout_constraintTop_toTopOf="@id/image" />
|
||||
<TextView android:textSize="14.0sp" android:textColor="?text_secondary" android:id="@id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lineSpacingExtra="2.0dip" android:layout_marginStart="12.0dip" app:layout_constraintBottom_toBottomOf="@id/image" app:layout_constraintLeft_toRightOf="@id/image" />
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout android:id="@id/mentions_cl" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@id/divider" android:layout_below="@id/dialog_header_container"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<FrameLayout android:id="@id/mentions_container" android:background="#ffffffff" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" app:layout_behavior="com.vk.core.ui.VkBottomSheetBehavior" />
|
||||
<FrameLayout android:id="@id/mentions_container" android:background="?tabbar_background" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" app:layout_behavior="com.vk.core.ui.VkBottomSheetBehavior" />
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_write_24" android:id="@id/tags_change" android:title="@string/fave_tags_change" app:menuTint="@color/caption_gray" app:showAsAction="always" />
|
||||
<item android:icon="@drawable/ic_write_24" android:id="@id/tags_change" android:title="@string/fave_tags_change" app:menuTint="?text_primary" app:showAsAction="always" />
|
||||
</menu>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_tag_24" android:id="@id/tags" android:title="@string/fave_tag_icon_title" app:menuTint="?toolbarIconsColor" app:showAsAction="always" />
|
||||
<item android:icon="@drawable/ic_tag_24" android:id="@id/tags" android:title="@string/fave_tag_icon_title" app:menuTint="?text_primary" app:showAsAction="always" />
|
||||
</menu>
|
||||
@@ -2,7 +2,7 @@
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_market_28" android:id="@id/menu_cart" android:title="@string/market_cart" app:showAsAction="always" />
|
||||
<item android:id="@id/menu_fave_add_or_remove" android:title="" app:menuTint="?toolbarIconsColor" />
|
||||
<item android:id="@id/copy_link" android:title="@string/copy_link" app:menuTint="?toolbarIconsColor" />
|
||||
<item android:id="@id/report" android:title="@string/report_content" app:menuTint="?toolbarIconsColor" />
|
||||
<item android:id="@id/menu_fave_add_or_remove" android:title="" app:menuTint="?text_primary" />
|
||||
<item android:id="@id/copy_link" android:title="@string/copy_link" app:menuTint="?text_primary" />
|
||||
<item android:id="@id/report" android:title="@string/report_content" app:menuTint="?text_primary" />
|
||||
</menu>
|
||||
@@ -1,24 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_newsfeed_24" android:id="@id/menu_newsfeed" android:title="@string/newsfeed" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_notification_24" android:id="@id/menu_feedback" android:title="@string/not_notifications" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_message_24" android:id="@id/menu_messages" android:title="@string/messages" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_search_24" android:id="@id/menu_search" android:title="@string/search" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_user_24" android:id="@id/menu_friends" android:title="@string/friends" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_users_24" android:id="@id/menu_groups" android:title="@string/menu_groups" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_camera_24" android:id="@id/menu_photos" android:title="@string/photos" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_music_24" android:id="@id/menu_audios" android:title="@string/music" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_video_24" android:id="@id/menu_videos" android:title="@string/videos" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_live_filter_24dp" android:id="@id/menu_lives" android:title="@string/sett_live" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_podcast_24" android:id="@id/menu_podcasts" android:title="@string/podcasts" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_games_24" android:id="@id/menu_games" android:title="@string/games" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_favorite_24" android:id="@id/menu_fave" android:title="@string/fave_title" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_menu_like_24" android:id="@id/menu_feed_likes" android:title="@string/sett_likes" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_document_24" android:id="@id/menu_documents" android:title="@string/docs" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_money_transfer_24" android:id="@id/menu_payments" android:title="@string/money_transfer_money_transfers" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_help_24" android:id="@id/menu_support" android:title="@string/help" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_money_circle_24" android:id="@id/menu_vk_pay" android:title="@string/vk_pay" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_services_24" android:id="@id/menu_vk_apps" android:title="@string/menu_apps" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_settings_24" android:id="@id/menu_settings" android:title="@string/menu_settings" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_newsfeed_24" android:id="@id/menu_newsfeed" android:title="@string/newsfeed" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_notification_24" android:id="@id/menu_feedback" android:title="@string/not_notifications" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_message_24" android:id="@id/menu_messages" android:title="@string/messages" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_search_24" android:id="@id/menu_search" android:title="@string/search" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_user_24" android:id="@id/menu_friends" android:title="@string/friends" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_users_24" android:id="@id/menu_groups" android:title="@string/menu_groups" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_camera_24" android:id="@id/menu_photos" android:title="@string/photos" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_music_24" android:id="@id/menu_audios" android:title="@string/music" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_video_24" android:id="@id/menu_videos" android:title="@string/videos" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_live_filter_24dp" android:id="@id/menu_lives" android:title="@string/sett_live" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_podcast_24" android:id="@id/menu_podcasts" android:title="@string/podcasts" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_games_24" android:id="@id/menu_games" android:title="@string/games" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_favorite_24" android:id="@id/menu_fave" android:title="@string/fave_title" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_menu_like_24" android:id="@id/menu_feed_likes" android:title="@string/sett_likes" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_document_24" android:id="@id/menu_documents" android:title="@string/docs" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_money_transfer_24" android:id="@id/menu_payments" android:title="@string/money_transfer_money_transfers" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_help_24" android:id="@id/menu_support" android:title="@string/help" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_money_circle_24" android:id="@id/menu_vk_pay" android:title="@string/vk_pay" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_services_24" android:id="@id/menu_vk_apps" android:title="@string/menu_apps" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_settings_24" android:id="@id/menu_settings" android:title="@string/menu_settings" app:menuTint="?text_primary" />
|
||||
</menu>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_menu_search" android:id="@id/search" android:title="@string/search" android:showAsAction="always" app:menuTint="?toolbarIconsColor" app:showAsAction="always" />
|
||||
<item android:icon="@drawable/ic_menu_search" android:id="@id/search" android:title="@string/search" android:showAsAction="always" app:menuTint="?text_primary" app:showAsAction="always" />
|
||||
</menu>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_check_24" android:id="@id/ok" android:title="@string/ok" android:showAsAction="always" app:menuTint="?toolbarIconsColor" app:showAsAction="always" />
|
||||
<item android:icon="@drawable/ic_check_24" android:id="@id/ok" android:title="@string/ok" android:showAsAction="always" app:menuTint="?text_primary" app:showAsAction="always" />
|
||||
</menu>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_settings_24" android:id="@id/filter" android:title="@string/filter" android:showAsAction="always" app:menuTint="?toolbarIconsColor" app:showAsAction="always" />
|
||||
<item android:icon="@drawable/ic_settings_24" android:id="@id/filter" android:title="@string/filter" android:showAsAction="always" app:menuTint="?text_primary" app:showAsAction="always" />
|
||||
</menu>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_search_24" android:id="@id/search" android:title="@string/search" app:menuTint="?toolbarIconsColor" />
|
||||
<item android:icon="@drawable/ic_search_24" android:id="@id/search" android:title="@string/search" app:menuTint="?text_primary" />
|
||||
</menu>
|
||||
@@ -3,10 +3,10 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:icon="@drawable/ic_add_24" android:id="@id/add" android:title="@string/add" android:showAsAction="always" app:showAsAction="always">
|
||||
<menu>
|
||||
<item android:icon="@drawable/ic_camera_24" android:id="@id/add_new_video" android:title="@string/add_video_new" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_gallery_24" android:id="@id/add_existed" android:title="@string/add_video_existing" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_link_24" android:id="@id/add_link" android:title="@string/video_add_link" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_create_folder_24" android:id="@id/add_album" android:title="@string/create_album" app:menuTint="@color/leftmenu_icon" />
|
||||
<item android:icon="@drawable/ic_camera_24" android:id="@id/add_new_video" android:title="@string/add_video_new" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_gallery_24" android:id="@id/add_existed" android:title="@string/add_video_existing" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_link_24" android:id="@id/add_link" android:title="@string/video_add_link" app:menuTint="?text_primary" />
|
||||
<item android:icon="@drawable/ic_create_folder_24" android:id="@id/add_album" android:title="@string/create_album" app:menuTint="?text_primary" />
|
||||
</menu>
|
||||
</item>
|
||||
</menu>
|
||||
@@ -445,6 +445,7 @@
|
||||
<item>Украинский</item>
|
||||
</string-array>
|
||||
<string-array name="start">
|
||||
<item>Стандартное</item>
|
||||
<item>Новости</item>
|
||||
<item>Диалоги</item>
|
||||
<item>Меню</item>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
</style>
|
||||
<style name="ActionBarTitleStyle" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title.Inverse">
|
||||
<item name="android:textSize">18.0dip</item>
|
||||
<item name="android:textColor">#ffffffff</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
</style>
|
||||
<style name="Base.TextAppearance.AppCompat" parent="@android:style/TextAppearance.Material" />
|
||||
<style name="Base.TextAppearance.AppCompat.Body1" parent="@android:style/TextAppearance.Material.Body1" />
|
||||
@@ -429,7 +429,7 @@
|
||||
<item name="android:shadowRadius">@integer/s2dip</item>
|
||||
</style>
|
||||
<style name="GradientActionBarTitleStyle" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title.Inverse">
|
||||
<item name="android:textColor">#ffffffff</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:shadowColor">#26000000</item>
|
||||
<item name="android:shadowDy">@integer/s1dip</item>
|
||||
<item name="android:shadowRadius">@integer/s2dip</item>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
<item name="text_secondary">@android:color/system_neutral2_200</item>
|
||||
<item name="background_content">@android:color/system_neutral1_900</item>
|
||||
<item name="background_page">@android:color/system_neutral1_800</item>
|
||||
|
||||
<item name="action_sheet_action_foreground">@color/white</item>
|
||||
<item name="action_sheet_separator">@color/white_alpha12</item>
|
||||
<item name="activity_indicator_tint">@android:color/system_neutral2_200</item>
|
||||
@@ -535,7 +534,6 @@
|
||||
<item name="im_bubble_gift_background">@color/gold_200</item>
|
||||
<item name="im_bubble_gift_text">@color/gold_500</item>
|
||||
<item name="im_bubble_gift_text_secondary">@color/gold_400</item>
|
||||
|
||||
<item name="im_bubble_incoming">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate_highlighted">@android:color/system_accent2_200</item>
|
||||
@@ -544,7 +542,6 @@
|
||||
<item name="im_bubble_outgoing_alternate">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@android:color/system_accent2_200</item>
|
||||
<item name="im_bubble_outgoing_highlighted">@android:color/system_accent2_200</item>
|
||||
|
||||
<item name="im_conversation_error_icon">@color/red_error</item>
|
||||
<item name="im_conversation_sending_icon">?accent</item>
|
||||
<item name="im_conversation_unread_counter_background">?accent</item>
|
||||
@@ -675,7 +672,6 @@
|
||||
<item name="text_secondary">@android:color/system_neutral2_200</item>
|
||||
<item name="background_content">@android:color/system_neutral1_900</item>
|
||||
<item name="background_page">@android:color/system_neutral1_800</item>
|
||||
|
||||
<item name="action_sheet_action_foreground">@color/white</item>
|
||||
<item name="action_sheet_separator">@color/white_alpha12</item>
|
||||
<item name="activity_indicator_tint">@android:color/system_neutral2_200</item>
|
||||
@@ -821,7 +817,6 @@
|
||||
<item name="im_bubble_outgoing_alternate">@android:color/system_accent2_800</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@android:color/system_accent1_800</item>
|
||||
<item name="im_bubble_outgoing_highlighted">@android:color/system_accent1_800</item>
|
||||
|
||||
<item name="im_conversation_error_icon">@color/red_error</item>
|
||||
<item name="im_conversation_sending_icon">@color/im_old_accent</item>
|
||||
<item name="im_conversation_unread_counter_background">@android:color/system_neutral1_50</item>
|
||||
@@ -947,5 +942,4 @@
|
||||
<item name="writebar_icon">@android:color/system_neutral2_200</item>
|
||||
<item name="tabbar_fix">?tabbar_background</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -585,6 +585,7 @@
|
||||
<item>uk</item>
|
||||
</string-array>
|
||||
<string-array name="start">
|
||||
<item>Default</item>
|
||||
<item>Newsfeed</item>
|
||||
<item>Dialogs</item>
|
||||
<item>Menu</item>
|
||||
@@ -605,7 +606,8 @@
|
||||
<item>Games</item>
|
||||
<item>Bookmarks</item>
|
||||
</string-array>
|
||||
<string-array name="start_value">
|
||||
<string-array name="start_values">
|
||||
<item>default</item>
|
||||
<item>newsfeed</item>
|
||||
<item>messenger</item>
|
||||
<item>menu</item>
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<public type="array" name="language" id="0x7f030059" />
|
||||
<public type="array" name="lang_value" id="0x7f03005a" />
|
||||
<public type="array" name="start" id="0x7f03005b" />
|
||||
<public type="array" name="start_value" id="0x7f03005c" />
|
||||
<public type="array" name="start_values" id="0x7f03005c" />
|
||||
<public type="array" name="proxy" id="0x7f03005d" />
|
||||
<public type="array" name="proxy_value" id="0x7f03005e" />
|
||||
<public type="attr" name="BMSB_auto" id="0x7f040000" />
|
||||
|
||||
+12
-11
@@ -51,7 +51,7 @@
|
||||
</style>
|
||||
<style name="ActionBarTitleStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse">
|
||||
<item name="android:textSize">18.0dip</item>
|
||||
<item name="android:textColor">#ffffffff</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
</style>
|
||||
<style name="ActionButton" parent="@style/Widget.AppCompat.Light.ActionButton" />
|
||||
<style name="ActionButton.Blue" parent="@style/ActionButton">
|
||||
@@ -1318,7 +1318,7 @@
|
||||
<item name="actionBarTheme">@style/ActionBarTheme.ItemsFull</item>
|
||||
</style>
|
||||
<style name="BaseStyle.Registration.Blue" parent="@style/BaseStyle.Registration">
|
||||
<item name="android:windowBackground">?accent</item>
|
||||
<item name="android:windowBackground">@color/header_blue</item>
|
||||
<item name="android:windowIsFloating">false</item>
|
||||
<item name="colorAccent">@android:color/white</item>
|
||||
<item name="colorPrimary">@android:color/white</item>
|
||||
@@ -1642,7 +1642,7 @@
|
||||
<item name="android:shadowRadius">@integer/s2dip</item>
|
||||
</style>
|
||||
<style name="GradientActionBarTitleStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse">
|
||||
<item name="android:textColor">#ffffffff</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:shadowColor">#26000000</item>
|
||||
<item name="android:shadowDy">@integer/s1dip</item>
|
||||
<item name="android:shadowRadius">@integer/s2dip</item>
|
||||
@@ -3129,7 +3129,7 @@
|
||||
</style>
|
||||
<style name="UserSmallTitle">
|
||||
<item name="android:textSize">16.0dip</item>
|
||||
<item name="android:textColor">#ff2e3033</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:ellipsize">marquee</item>
|
||||
<item name="android:duplicateParentState">false</item>
|
||||
<item name="android:layout_width">fill_parent</item>
|
||||
@@ -4355,7 +4355,7 @@
|
||||
<style name="VkIm.MsgPart.AudioMsg.Duration" parent="@style/VkIm.MsgPart.AudioMsg">
|
||||
<item name="android:textSize">12.0sp</item>
|
||||
<item name="android:textStyle">normal</item>
|
||||
<item name="android:textColor">#ff5181b8</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:fontFamily">@string/fontRobotoRegular</item>
|
||||
</style>
|
||||
<style name="VkIm.MsgPart.Button" parent="@style/VkIm.MsgPart" />
|
||||
@@ -4382,13 +4382,13 @@
|
||||
<style name="VkIm.MsgPart.Call.Failure" parent="@style/VkIm.MsgPart.Call">
|
||||
<item name="android:textSize">14.0sp</item>
|
||||
<item name="android:textStyle">normal</item>
|
||||
<item name="android:textColor">#ffe64646</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:fontFamily">@string/fontRobotoRegular</item>
|
||||
</style>
|
||||
<style name="VkIm.MsgPart.Call.Title" parent="@style/VkIm.MsgPart.Call">
|
||||
<item name="android:textSize">15.0sp</item>
|
||||
<item name="android:textStyle">normal</item>
|
||||
<item name="android:textColor">#ff2e3033</item>
|
||||
<item name="android:textColor">?text_primary</item>
|
||||
<item name="android:fontFamily">@string/fontRobotoMedium</item>
|
||||
</style>
|
||||
<style name="VkIm.MsgPart.Fwd" parent="@style/VkIm.MsgPart" />
|
||||
@@ -4470,7 +4470,7 @@
|
||||
<item name="vkim_snippet_buttonTextSize">13.0sp</item>
|
||||
<item name="vkim_snippet_captionFontFamily">@string/fontRobotoRegular</item>
|
||||
<item name="vkim_snippet_captionText">@null</item>
|
||||
<item name="vkim_snippet_captionTextColor">?im_history_incoming_foreground_caption</item>
|
||||
<item name="vkim_snippet_captionTextColor">?text_primary</item>
|
||||
<item name="vkim_snippet_captionTextSize">13.0sp</item>
|
||||
<item name="vkim_snippet_contentPaddingBottom">4.0dip</item>
|
||||
<item name="vkim_snippet_contentPaddingLeft">10.0dip</item>
|
||||
@@ -4478,7 +4478,7 @@
|
||||
<item name="vkim_snippet_contentPaddingTop">4.0dip</item>
|
||||
<item name="vkim_snippet_descriptionFontFamily">@string/fontRobotoRegular</item>
|
||||
<item name="vkim_snippet_descriptionText">@null</item>
|
||||
<item name="vkim_snippet_descriptionTextColor">?im_history_incoming_foreground_caption</item>
|
||||
<item name="vkim_snippet_descriptionTextColor">?text_secondary</item>
|
||||
<item name="vkim_snippet_descriptionTextSize">14.0sp</item>
|
||||
<item name="vkim_snippet_imageCornerRadius">?im_msg_part_corner_radius_big</item>
|
||||
<item name="vkim_snippet_imageMaxHeight">80.0dip</item>
|
||||
@@ -4487,14 +4487,14 @@
|
||||
<item name="vkim_snippet_imageMinWidth">80.0dip</item>
|
||||
<item name="vkim_snippet_priceFontFamily">@string/fontRobotoRegular</item>
|
||||
<item name="vkim_snippet_priceText">@null</item>
|
||||
<item name="vkim_snippet_priceTextColor">?im_history_incoming_foreground_caption</item>
|
||||
<item name="vkim_snippet_priceTextColor">?text_primary</item>
|
||||
<item name="vkim_snippet_priceTextSize">13.0sp</item>
|
||||
<item name="vkim_snippet_timeMargin">8.0dip</item>
|
||||
<item name="vkim_snippet_timeText">@null</item>
|
||||
<item name="vkim_snippet_timeTextAppearance">@style/VkIm.MsgPart.Time.TextSimple</item>
|
||||
<item name="vkim_snippet_titleFontFamily">@string/fontRobotoMedium</item>
|
||||
<item name="vkim_snippet_titleText">@null</item>
|
||||
<item name="vkim_snippet_titleTextColor">#ff2e3033</item>
|
||||
<item name="vkim_snippet_titleTextColor">?text_primary</item>
|
||||
<item name="vkim_snippet_titleTextSize">14.0sp</item>
|
||||
</style>
|
||||
<style name="VkIm.MsgPart.Time" parent="@style/VkIm.MsgPart" />
|
||||
@@ -4921,6 +4921,7 @@
|
||||
<style name="VkIm.Theme.Search.Bg.VkApp" parent="@style/VkIm.Theme.Search.Bg">
|
||||
<item name="android:background">?background_content</item>
|
||||
<item name="android:text">@string/vkim_msg_search_hint</item>
|
||||
<item name="android:textColor">?text_secondary</item>
|
||||
</style>
|
||||
<style name="VkIm.Theme.Search.Bg.VkMe" parent="@style/VkIm.Theme.Search.Bg">
|
||||
<item name="android:background">#9bffffff</item>
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="VK Me MSG mode" android:key="vkme_msg" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="Фикс некоторых покрасок Monet" android:key="color_grishka" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="VK Me theme" android:key="vkim_msg" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="libverify support" android:key="libverify" android:summary="Включение может пофиксить 2фа вход" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/vtlmsgflat" android:key="msgflat" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.SummaryListPreference android:entries="@array/language" android:title="Язык приложения" android:key="lang_value" android:defaultValue="system" android:dialogTitle="Выберите язык приложения" android:entryValues="@array/lang_value" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="Функции для разработчиков">
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
<com.vtosters.lite.ui.MaterialSectionDividerPreference />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/interfaceglobal">
|
||||
<com.vtosters.lite.ui.SummaryListPreference android:entries="@array/start" android:title="@string/interfacestartfr" android:key="start_value" android:defaultValue="newsfeed" android:dialogTitle="@string/interfacestartfrsum" android:entryValues="@array/start_value" />
|
||||
<com.vtosters.lite.ui.SummaryListPreference android:entries="@array/start" android:title="@string/interfacestartfr" android:key="start_values" android:defaultValue="newsfeed" android:dialogTitle="@string/interfacestartfrsum" android:entryValues="@array/start_values" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="Старые иконки" android:key="olddock" android:summary="Использовать старые иконки в докбаре
|
||||
Необходимо сбросить настройки докбара для применения изменений" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/interfaceglobaldates" android:key="fulltime" android:summary="@string/interfaceglobaldatessum" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/interfaceglobalnum" android:key="shortinfo" android:summary="@string/interfaceglobalnumsum" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/interfaceglobalpost" android:key="shortpost" android:summary="@string/interfaceglobalpostsum" android:defaultValue="true" />
|
||||
@@ -17,7 +19,6 @@
|
||||
<PreferenceCategory android:title="@string/interfacevideo">
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/interfacevideoext" android:key="isEnableExternalOpening" android:summary="@string/interfacevideoextsum" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/interfacevideorec" android:key="__dbg_disable_video_feed" android:summary="@string/interfacevideorecsum" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/newvideo" android:key="newvideo" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSectionDividerPreference />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/vtlother">
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<PreferenceCategory android:title="@string/vtlinterfacemsg">
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/vtlcalls" android:key="calls" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/vtlmsgtails" android:key="msgtails" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/vtlmsgflat" android:key="msgflat" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="@string/vtlvoice" android:key="voice" android:summary="@string/vtlvoicesummary" android:defaultValue="true" />
|
||||
<com.vtosters.lite.ui.MaterialSectionDividerPreference />
|
||||
</PreferenceCategory>
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceCategory android:title="2фа вход">
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference android:title="libverify support" android:key="libverify" android:summary="Включение может пофиксить 2фа вход" android:defaultValue="false" />
|
||||
<com.vtosters.lite.ui.MaterialSectionDividerPreference />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/vtlproxy">
|
||||
<Preference android:enabled="false" android:title="@string/proxyimpinfo" android:summary="@string/proxyimpinfosum" />
|
||||
<com.vtosters.lite.ui.SummaryListPreference android:entries="@array/proxy" android:title="@string/useproxy" android:key="proxy" android:defaultValue="noproxy" android:dialogTitle="@string/useproxysum" android:entryValues="@array/proxy_value" />
|
||||
|
||||
@@ -4117,6 +4117,168 @@
|
||||
goto/16 :goto_5
|
||||
|
||||
:cond_52
|
||||
|
||||
|
||||
const-string v2, "/vt/dockbar?.*"
|
||||
|
||||
.line 416
|
||||
new-instance v3, Lkotlin/text/Regex;
|
||||
|
||||
invoke-direct {v3, v2}, Lkotlin/text/Regex;-><init>(Ljava/lang/String;)V
|
||||
|
||||
const/4 v4, 0x0
|
||||
|
||||
const/4 v5, 0x0
|
||||
|
||||
const/4 v6, 0x0
|
||||
|
||||
const/16 v7, 0xe
|
||||
|
||||
const/4 v8, 0x0
|
||||
|
||||
move-object v2, v9
|
||||
|
||||
invoke-static/range {v2 .. v8}, Lcom/vk/common/links/LinkProcessor2;->a(Lcom/vk/common/links/LinkProcessor2;Lkotlin/text/Regex;Lkotlin/text/Regex;Lkotlin/text/Regex;IILjava/lang/Object;)Z
|
||||
|
||||
move-result v2
|
||||
|
||||
if-eqz v2, :cond_130
|
||||
|
||||
invoke-static {}, Lru/vtosters/lite/utils/Helper;->GetContext()Landroid/content/Context;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
.line 14
|
||||
new-instance v8, Lcom/vk/navigation/Navigator;
|
||||
|
||||
const-class v0, Lru/vtosters/lite/ui/fragments/dockbar/DockBarFragment;
|
||||
|
||||
invoke-direct {v8, v0}, Lcom/vk/navigation/Navigator;-><init>(Ljava/lang/Class;)V
|
||||
|
||||
invoke-virtual {v8, v1}, Lcom/vk/navigation/Navigator;->a(Landroid/content/Context;)Landroid/content/Intent;
|
||||
|
||||
move-result-object v8
|
||||
|
||||
const/high16 v0, 0x10000000
|
||||
|
||||
.line 15
|
||||
invoke-virtual {v8, v0}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
|
||||
|
||||
.line 16
|
||||
invoke-virtual {v1, v8}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
|
||||
|
||||
goto/16 :goto_5
|
||||
|
||||
:cond_130
|
||||
|
||||
|
||||
const-string v2, "/vt/tgs?.*"
|
||||
|
||||
.line 416
|
||||
new-instance v3, Lkotlin/text/Regex;
|
||||
|
||||
invoke-direct {v3, v2}, Lkotlin/text/Regex;-><init>(Ljava/lang/String;)V
|
||||
|
||||
const/4 v4, 0x0
|
||||
|
||||
const/4 v5, 0x0
|
||||
|
||||
const/4 v6, 0x0
|
||||
|
||||
const/16 v7, 0xe
|
||||
|
||||
const/4 v8, 0x0
|
||||
|
||||
move-object v2, v9
|
||||
|
||||
invoke-static/range {v2 .. v8}, Lcom/vk/common/links/LinkProcessor2;->a(Lcom/vk/common/links/LinkProcessor2;Lkotlin/text/Regex;Lkotlin/text/Regex;Lkotlin/text/Regex;IILjava/lang/Object;)Z
|
||||
|
||||
move-result v2
|
||||
|
||||
if-eqz v2, :cond_131
|
||||
|
||||
invoke-static {}, Lru/vtosters/lite/utils/Helper;->GetContext()Landroid/content/Context;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
.line 14
|
||||
new-instance v8, Lcom/vk/navigation/Navigator;
|
||||
|
||||
const-class v0, Lru/vtosters/lite/ui/fragments/tgstickers/StickersFragment;
|
||||
|
||||
invoke-direct {v8, v0}, Lcom/vk/navigation/Navigator;-><init>(Ljava/lang/Class;)V
|
||||
|
||||
invoke-virtual {v8, v1}, Lcom/vk/navigation/Navigator;->a(Landroid/content/Context;)Landroid/content/Intent;
|
||||
|
||||
move-result-object v8
|
||||
|
||||
const/high16 v0, 0x10000000
|
||||
|
||||
.line 15
|
||||
invoke-virtual {v8, v0}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
|
||||
|
||||
.line 16
|
||||
invoke-virtual {v1, v8}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
|
||||
|
||||
goto/16 :goto_5
|
||||
|
||||
:cond_131
|
||||
|
||||
|
||||
const-string v2, "/vt/accounts?.*"
|
||||
|
||||
.line 416
|
||||
new-instance v3, Lkotlin/text/Regex;
|
||||
|
||||
invoke-direct {v3, v2}, Lkotlin/text/Regex;-><init>(Ljava/lang/String;)V
|
||||
|
||||
const/4 v4, 0x0
|
||||
|
||||
const/4 v5, 0x0
|
||||
|
||||
const/4 v6, 0x0
|
||||
|
||||
const/16 v7, 0xe
|
||||
|
||||
const/4 v8, 0x0
|
||||
|
||||
move-object v2, v9
|
||||
|
||||
invoke-static/range {v2 .. v8}, Lcom/vk/common/links/LinkProcessor2;->a(Lcom/vk/common/links/LinkProcessor2;Lkotlin/text/Regex;Lkotlin/text/Regex;Lkotlin/text/Regex;IILjava/lang/Object;)Z
|
||||
|
||||
move-result v2
|
||||
|
||||
if-eqz v2, :cond_132
|
||||
|
||||
invoke-static {}, Lru/vtosters/lite/utils/Helper;->GetContext()Landroid/content/Context;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
.line 14
|
||||
new-instance v8, Lcom/vk/navigation/Navigator;
|
||||
|
||||
const-class v0, Lru/vtosters/lite/ui/fragments/multiaccount/MultiAccountFragment;
|
||||
|
||||
invoke-direct {v8, v0}, Lcom/vk/navigation/Navigator;-><init>(Ljava/lang/Class;)V
|
||||
|
||||
invoke-virtual {v8, v1}, Lcom/vk/navigation/Navigator;->a(Landroid/content/Context;)Landroid/content/Intent;
|
||||
|
||||
move-result-object v8
|
||||
|
||||
const/high16 v0, 0x10000000
|
||||
|
||||
.line 15
|
||||
invoke-virtual {v8, v0}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
|
||||
|
||||
.line 16
|
||||
invoke-virtual {v1, v8}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
|
||||
|
||||
goto/16 :goto_5
|
||||
|
||||
:cond_132
|
||||
|
||||
|
||||
|
||||
const-string v2, "/vt/feed?.*"
|
||||
|
||||
.line 416
|
||||
|
||||
@@ -587,7 +587,7 @@
|
||||
.method public static e()Landroid/content/SharedPreferences;
|
||||
.locals 3
|
||||
|
||||
invoke-static {}, Lru/vtosters/lite/utils/AccountManager;->getCurrentAccount()Landroid/content/SharedPreferences;
|
||||
invoke-static {}, Lru/vtosters/lite/ui/fragments/multiaccount/MultiAccountManager;->getCurrentAccount()Landroid/content/SharedPreferences;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
|
||||
@@ -18,28 +18,6 @@
|
||||
.method protected a(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
|
||||
.locals 2
|
||||
|
||||
.line 22
|
||||
invoke-virtual {p0}, Lcom/vtosters/lite/ui/bottomnavigation/BottomNavigationMenu;->size()I
|
||||
|
||||
move-result v0
|
||||
|
||||
add-int/lit8 v0, v0, 0x1
|
||||
|
||||
const/4 v1, 0x5
|
||||
|
||||
if-le v0, v1, :cond_0
|
||||
|
||||
.line 23
|
||||
new-instance p1, Ljava/lang/IllegalArgumentException;
|
||||
|
||||
const-string p2, "Maximum number of items supported by BottomNavigationView is 5. Limit can be checked with BottomNavigationView#getMaxItemCount()"
|
||||
|
||||
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
||||
|
||||
throw p1
|
||||
|
||||
.line 27
|
||||
:cond_0
|
||||
invoke-super {p0, p1, p2, p3, p4}, Landroid/support/v7/view/menu/MenuBuilder;->a(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
@@ -55,6 +55,10 @@
|
||||
|
||||
if-eqz v0, :cond_1
|
||||
|
||||
invoke-static {v0}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->injectMenuJSON(Lorg/json/JSONArray;)Lorg/json/JSONArray;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
.line 38
|
||||
new-instance v3, Ljava/util/ArrayList;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user