Commit 9744e246 authored by Massimiliano's avatar Massimiliano
Browse files

added new settings activity to make icons hideble+

Started with new theme+
corrected issue when going back after visibility change
parent 8d22684c
......@@ -14,8 +14,8 @@
<option name="values">
<map>
<entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="ic_battery" />
<entry key="sourceFile" value="$PROJECT_DIR$/../DisIcons/battery.svg" />
<entry key="outputName" value="ic_app_logo" />
<entry key="sourceFile" value="$PROJECT_DIR$/../DisIcons/v2/ic_app_logo.svg" />
</map>
</option>
</PersistentState>
......
......@@ -11,7 +11,7 @@ If you don't have a Disroot account you can still use this app to access all th
* Ethercalc
* Private bin
* Upload
* Poll
* Polls
* Searx
* Diaspora* (requires a Diaspora only account)
......
......@@ -6,8 +6,8 @@ android {
applicationId "org.disroot.disrootapp"
minSdkVersion 15
targetSdkVersion 28
versionCode 22
versionName "1.2.3"
versionCode 23
versionName "1.9.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
......@@ -48,3 +48,7 @@ repositories {
dependencies {
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:+'
}
......@@ -13,16 +13,17 @@
android:allowBackup="true"
android:fullBackupContent="@xml/backup_descriptor"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_disroot"
android:icon="@drawable/ic_app_logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/DisTheme">
<receiver
android:name=".StatusBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
......@@ -45,7 +46,7 @@
android:name=".ui.MainActivity"
android:configChanges="orientation|screenSize"
android:hardwareAccelerated="true"
android:label="@string/app_name">
android:label="@string/dashboard">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
......@@ -70,6 +71,10 @@
android:name=".ui.StateMessagesActivity"
android:label="@string/title_activity_state"
android:theme="@style/DisTheme" />
<activity
android:name=".ui.SettingsActivity"
android:label="@string/settings"
android:theme="@style/DisTheme" />
<activity
android:name="wsdfhjxc.taponium.MainActivity"
android:label="@string/title_activity_tap"
......
......@@ -80,10 +80,11 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
SharedPreferences firstStart = null;//first start
SharedPreferences check = null;
SharedPreferences BtnPreference;
WebChromeClient.FileChooserParams chooserParams;
ValueCallback<Uri[]> chooserPathUri;
Button button;
private Button MailBtn,CloudBtn,DiasporaBtn,ForumBtn,ChatBtn,PadBtn,CalcBtn,BinBtn,UploadBtn,SearxBtn,PollsBtn,BoardBtn,NotesBtn,UserBtn,StateBtn,HowToBtn,AboutBtn;//all buttons
private Button MailBtn,CloudBtn,ForumBtn,ChatBtn,PadBtn,CalcBtn,BinBtn,UploadBtn,SearxBtn,PollsBtn,BoardBtn,NotesBtn,UserBtn,StateBtn,HowToBtn,AboutBtn;//all buttons
private CookieManager cookieManager;
private WebView webView;
private DisWebChromeClient disWebChromeClient;
......@@ -107,7 +108,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
private static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;//file upload
private static final int INPUT_FILE_REQUEST_CODE = 1;//file upload
private static final int FILECHOOSER_RESULTCODE = 1;//file upload
private static final String TAG = MainActivity.class.getSimpleName();
public static final String TAG = MainActivity.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
......@@ -120,6 +121,11 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
//settings
firstStart = getSharedPreferences("org.disroot.disrootap", MODE_PRIVATE);//fisrt start
check = getSharedPreferences("org.disroot.disrootapp", MODE_PRIVATE);
//buttons visiblility preference
BtnPreference = getSharedPreferences( "mailBtnVisibility", Context.MODE_PRIVATE );//mail
BtnPreference = getSharedPreferences( "cloudBtnVisibility", Context.MODE_PRIVATE );//cloud
BtnPreference = getSharedPreferences( "forumBtnVisibility", Context.MODE_PRIVATE );//forum
BtnPreference = getSharedPreferences( "chatBtnVisibility", Context.MODE_PRIVATE );//chat
//Status service
Intent intent = new Intent( MainActivity.this, StatusService.class);
......@@ -187,7 +193,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
// Link the button in activity_main.xml
MailBtn = findViewById( R.id.MailBtn );
CloudBtn = findViewById( R.id.CloudBtn );
DiasporaBtn = findViewById( R.id.DiasporaBtn );
//DiasporaBtn = findViewById( R.id.DiasporaBtn );//end of Disroot's Dandelion
ForumBtn = findViewById( R.id.ForumBtn );
ChatBtn = findViewById( R.id.ChatBtn );
PadBtn = findViewById( R.id.PadBtn );
......@@ -203,10 +209,28 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
HowToBtn = findViewById( R.id.HowToBtn );
AboutBtn = findViewById( R.id.AboutBtn );
//get preferences
if (BtnPreference.getBoolean( "mailBtnVisibility", true)==false){
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
viewGroup.removeView(MailBtn);
}
if (BtnPreference.getBoolean( "cloudBtnVisibility", true)==false){
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
viewGroup.removeView(CloudBtn);
}
if (BtnPreference.getBoolean( "forumBtnVisibility", true)==false){
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
viewGroup.removeView(ForumBtn);
}
if (BtnPreference.getBoolean( "chatBtnVisibility", true)==false){
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
viewGroup.removeView(ChatBtn);
}
//Set longclick buttons
MailBtn.setOnLongClickListener( this );
CloudBtn.setOnLongClickListener( this );
DiasporaBtn.setOnLongClickListener( this );
//DiasporaBtn.setOnLongClickListener( this );//end of Disroot's Dandelion
ForumBtn.setOnLongClickListener( this );
ChatBtn.setOnLongClickListener( this );
PadBtn.setOnLongClickListener( this );
......@@ -225,7 +249,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
//set clickbuttons
MailBtn.setOnClickListener( this );
CloudBtn.setOnClickListener( this );
DiasporaBtn.setOnClickListener( this );
//DiasporaBtn.setOnClickListener( this );//end of Disroot's Dandelion
ForumBtn.setOnClickListener( this );
ChatBtn.setOnClickListener( this );
PadBtn.setOnClickListener( this );
......@@ -275,14 +299,14 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
}
else startActivity(cloud);
break;
case R.id.DiasporaBtn:
/*case R.id.DiasporaBtn: //end ofDisroot's Dandelion
Intent pod = getPackageManager().getLaunchIntentForPackage(Diaspora);
if(getPackageManager().getLaunchIntentForPackage(Diaspora) == null) {
showDiaDialog();
break;
}
else startActivity(pod);
break;
break;*/
case R.id.ForumBtn:
webView.loadUrl(Constants.URL_DisApp_FORUM);
hideDashboard();
......@@ -332,8 +356,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
hideDashboard();
break;
case R.id.UploadBtn:
//startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(Constants.URL_DisApp_UPLOAD)));
//workaround for crashing app
webView.loadUrl(Constants.URL_DisApp_UPLOAD);
hideDashboard();
break;
......@@ -388,9 +410,9 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
case R.id.CloudBtn:
showCloudInfo();
break;
case R.id.DiasporaBtn:
/*case R.id.DiasporaBtn://end of Disroot's Dandelion
showDiaInfo();
break;
break;*/
case R.id.ForumBtn:
showForumInfo();
break;
......@@ -448,7 +470,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
dashboard.setVisibility( View.GONE );
}
//Show xmpp choice
//Show chat choice
private void showChoose() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(R.string.ChooseChatTitle)
......@@ -548,6 +570,16 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
hideDashboard();
}
});
builder.setNeutralButton( R.string.remove , new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.MailBtn).getParent()!=null){
viewGroup.removeView(MailBtn);
BtnPreference.edit().putBoolean( "mailBtnVisibility", false ).apply();
return;}
}
});
builder.show();
}
private void showMailDialog(){
......@@ -581,6 +613,16 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
hideDashboard();
}
});
builder.setNeutralButton( R.string.remove , new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.CloudBtn).getParent()!=null){
viewGroup.removeView(CloudBtn);
BtnPreference.edit().putBoolean( "cloudBtnVisibility", false ).apply();
return;}
}
});
builder.show();
}
private void showCloudDialog(){
......@@ -600,6 +642,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
builder.show();
}
/*End of Disroot's Dandelion*
//Diaspora info
private void showDiaInfo() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
......@@ -631,7 +674,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
});
builder.setNegativeButton(R.string.global_cancel , null);
builder.show();
}
}*/
private void showForumInfo() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
......@@ -646,6 +689,16 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
hideDashboard();
}
});
builder.setNeutralButton( R.string.remove , new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.ForumBtn).getParent()!=null){
viewGroup.removeView(ForumBtn);
BtnPreference.edit().putBoolean( "forumBtnVisibility", false ).apply();
return;}
}
});
builder.show();
}
......@@ -674,7 +727,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
builder.setCancelable(false);
builder.setTitle(R.string.ChatTitle);
builder.setMessage(getString(R.string.ChatInfo));
// ||check.getBoolean("checkPix", true)==true
if(check.getBoolean("checkConv", true)|| check.getBoolean("checkPix",true)) {
View view = View.inflate(this, R.layout.check_forget, null);
final CheckBox forgetChat = (CheckBox) view.findViewById(R.id.forgetChat);
......@@ -695,6 +747,16 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
hideDashboard();
}
});
builder.setNeutralButton( R.string.remove , new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ViewGroup viewGroup =((ViewGroup)findViewById( R.id.StateBtn ).getParent());
if (findViewById( R.id.ChatBtn).getParent()!=null){
viewGroup.removeView(ChatBtn);
BtnPreference.edit().putBoolean( "chatBtnVisibility", false ).apply();
return;}
}
});
builder.show();
}
private void showChatDialog(){
......@@ -1100,8 +1162,6 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
// To show icons in the actionbar's overflow menu:
// http://stackoverflow.com/questions/18374183/how-to-show-icons-in-overflow-menu-in-actionbar
if(menu.getClass().getSimpleName().equals("MenuBuilder")) try {
......@@ -1164,6 +1224,10 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
Intent goAbout = new Intent(MainActivity.this, AboutActivity.class);
MainActivity.this.startActivity(goAbout);
return true;
case R.id.action_set_icons:
Intent goBtnSettings = new Intent(MainActivity.this, SettingsActivity.class);
MainActivity.this.startActivity(goBtnSettings);
return true;
case R.id.action_clear_cookies: {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
CookieManager.getInstance().removeAllCookies(null);
......@@ -1198,6 +1262,9 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webView.getSettings().setDatabaseEnabled(true);
webView.setOnLongClickListener(this);
//enable cookies
......@@ -1238,15 +1305,20 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
Log.e("Permission error","You have asked for permission");
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
final String filename= URLUtil.guessFileName(url, contentDisposition, mimetype);
if (Uri.parse( url ).toString().startsWith( "blob" )){
webView.loadUrl("");
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(Constants.URL_DisApp_UPLOAD)));
} else {
final String filename = URLUtil.guessFileName( url, contentDisposition, mimetype );
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(url));
Uri.parse( url ) );
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
request.setNotificationVisibility( DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED );
request.setDestinationInExternalPublicDir( Environment.DIRECTORY_DOWNLOADS, filename );
DownloadManager dm = (DownloadManager) getSystemService( DOWNLOAD_SERVICE );
assert dm != null;
dm.enqueue(request);
dm.enqueue( request );
}
}
});
......@@ -1273,7 +1345,7 @@ public class MainActivity extends AppCompatActivity implements View.OnLongClickL
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("https")|url.startsWith("http")&&url.contains("disroot")) {//&!url.contains("upload.disroot.org")
if(url.startsWith("http")&&url.contains("disroot")&&!Uri.parse( url ).toString().startsWith( "blob" )) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
......
package org.disroot.disrootapp.ui;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import org.disroot.disrootapp.R;
public class SettingsActivity extends AppCompatActivity {
SharedPreferences BtnPreference;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate( R.menu.menu_about, menu );
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_home) {
Intent goHome = new Intent( SettingsActivity.this, MainActivity.class );
SettingsActivity.this.startActivity( goHome );
return true;
}
return super.onOptionsItemSelected( item );
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_settings );
Toolbar toolbar = findViewById( R.id.toolbar );
setSupportActionBar( toolbar );
toolbar.setNavigationIcon( R.drawable.ic_arrow_back );
toolbar.setNavigationOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
} );
////buttons visiblility preference list
BtnPreference = getSharedPreferences( "mailBtnVisibility", Context.MODE_PRIVATE );//mail
BtnPreference = getSharedPreferences( "cloudBtnVisibility", Context.MODE_PRIVATE );//cloud
BtnPreference = getSharedPreferences( "forumBtnVisibility", Context.MODE_PRIVATE );//forum
BtnPreference = getSharedPreferences( "chatBtnVisibility", Context.MODE_PRIVATE );//chat
//checkboxlist
checkPrefBox();
}
//Visibility preference functions
public void checkPrefBox() {
//define checkBoxes
View iconSettings =findViewById( R.id.iconSettings );
final CheckBox checkMailBtn = iconSettings.findViewById( R.id.mailBtnPreference );//mail
final CheckBox checkCloudBtn = iconSettings.findViewById( R.id.cloudBtnPreference );//cloud
final CheckBox checkForumBtn = iconSettings.findViewById( R.id.foumBtnPreference );//forum
final CheckBox checkChatBtn = iconSettings.findViewById( R.id.chatBtnPreference );//chat
//Set checked if visibility is true
if (BtnPreference.getBoolean( "mailBtnVisibility", true )) checkMailBtn.setChecked( true );//mail
if (BtnPreference.getBoolean( "cloudBtnVisibility", true )) checkCloudBtn.setChecked( true );//cloud
if (BtnPreference.getBoolean( "forumBtnVisibility", true )) checkForumBtn.setChecked( true );//forum
if (BtnPreference.getBoolean( "chatBtnVisibility", true )) checkChatBtn.setChecked( true );//chat
//Mail
checkMailBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkMailBtn.isChecked()) {
BtnPreference.edit().putBoolean( "mailBtnVisibility", true ).apply();
} else {
BtnPreference.edit().putBoolean( "mailBtnVisibility", false ).apply();
}
}
} );
//Cloud
checkCloudBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkCloudBtn.isChecked()) {
BtnPreference.edit().putBoolean( "cloudBtnVisibility", true ).apply();
} else {
BtnPreference.edit().putBoolean( "cloudBtnVisibility", false ).apply();
}
}
} );
//forum
checkForumBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkForumBtn.isChecked()) {
BtnPreference.edit().putBoolean( "forumBtnVisibility", true ).apply();
} else {
BtnPreference.edit().putBoolean( "forumBtnVisibility", false ).apply();
}
}
} );
//chat
checkChatBtn.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (checkChatBtn.isChecked()) {
BtnPreference.edit().putBoolean( "chatBtnVisibility", true ).apply();
} else {
BtnPreference.edit().putBoolean( "chatBtnVisibility", false ).apply();
}
}
} );
}
@Override
public void onBackPressed() {
Intent goHome = new Intent( SettingsActivity.this, MainActivity.class );
SettingsActivity.this.startActivity( goHome );
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="12.7"
android:viewportHeight="12.7">
<path
android:pathData="M6.35,6.35m-6.35,0a6.35,6.35 0,1 1,12.7 0a6.35,6.35 0,1 1,-12.7 0"
android:strokeWidth="2.51155782"
android:fillColor="#50162d"
android:fillAlpha="0.98846154"/>
<path
android:pathData="m2.2268,4.5326c-0.0461,0.5661 0.3152,0.3505 0.7499,0.3246 0.5321,0.0083 1.0058,-0.0379 1.1996,0.264l1.2712,3.1525c0.236,0.7519 -0.8291,0.9706 -0.6936,1.3437 0.0967,0.5463 0.4617,0.3703 1.064,0.3011 2.0598,-0.4239 4.4416,-1.2796 4.8806,-2.7231 0.0892,-0.3122 0.0736,-0.7009 -0.0571,-0.9724 -0.2282,-0.3628 -0.5486,-0.6576 -0.872,-0.9324 -1.4281,-0.9121 -1.5014,-1.0189 -3.251,-1.5533 -0.786,-0.179 -1.58,-0.3371 -2.3892,-0.3493 -0.6755,-0.0538 -1.8017,0.5807 -1.9023,1.1446zM6.6109,5.6465c0.8928,0.2159 1.5441,0.8047 2.1557,1.3637 0.2596,0.2679 0.2714,0.5767 0.1082,0.9253 -0.223,0.3316 -0.5577,0.4127 -0.9098,0.5047l-0.5679,0.1154c0.2379,-0.4614 -0.1453,-0.8943 -0.2514,-1.3383 -0.1873,-0.5205 -0.3658,-1.0442 -0.5349,-1.5709z"
android:strokeAlpha="0.99215686"
android:strokeLineJoin="miter"
android:strokeWidth="1"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillAlpha="0.99215686"
android:strokeLineCap="butt"/>
</vector>
<vector android:height="24dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="1" android:fillColor="#ffffff"
android:pathData="m37.7143,19.4946c0,7.5804 -8.4375,13.7143 -18.8571,13.7143 -1.6339,0 -3.2143,-0.1607 -4.7143,-0.4286 -2.2232,1.5804 -4.7411,2.7321 -7.4464,3.4286 -0.7232,0.1875 -1.5,0.3214 -2.3036,0.4286H4.3125c-0.4018,0 -0.7768,-0.3214 -0.8571,-0.7768C3.3482,35.3517 3.6964,35.0303 3.9911,34.6821 5.0357,33.5035 6.2143,32.4588 7.125,30.2356 2.7857,27.7178 0,23.8338 0,19.4946 0,11.9142 8.4375,5.7803 18.8571,5.7803c10.4196,0 18.8571,6.1339 18.8571,13.7143zM48,26.3517c0,4.3661 -2.7857,8.2232 -7.125,10.7411 0.9107,2.2232 2.0893,3.2679 3.1339,4.4464 0.2946,0.3482 0.6429,0.6696 0.5357,1.1786 -0.1071,0.4821 -0.5089,0.8304 -0.9375,0.7768 -0.8036,-0.1071 -1.5804,-0.2411 -2.3036,-0.4286 -2.7054,-0.6964 -5.2232,-1.8482 -7.4464,-3.4286 -1.5,0.2679 -3.0804,0.4286 -4.7143,0.4286 -4.8482,0 -9.2946,-1.3393 -12.6429,-3.5357 0.7768,0.0536 1.5804,0.1071 2.3571,0.1071 5.7589,0 11.1964,-1.6607 15.3482,-4.6607 4.4732,-3.2679 6.9375,-7.6875 6.9375,-12.4821 0,-1.3929 -0.2143,-2.7589 -0.6161,-4.0714C45.0536,17.9142 48,21.8785 48,26.3517Z" android:strokeWidth="0.02678571"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="12.7"
android:viewportHeight="12.7">
<path
android:pathData="m10.9643,3.6263c-0.0637,2.49 -2.1825,4.9175 -4.7334,5.973 2.3859,-1.0905 3.9098,-3.6194 3.6849,-5.5478z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
<path
android:pathData="m9.0373,4.3276c-0.123,3.9776 -3.0188,5.3239 -4.8734,5.8454v-0.0428c2.3528,-0.5924 3.9534,-3.3009 3.9534,-5.3108 0,-0.0692 -0.0021,-0.1377 -0.006,-0.2062z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
<path
android:pathData="m9.6762,4.1258 l-0.3971,0.1419c-0.0512,2.5097 -1.2808,4.6654 -4.443,5.7667 3.1989,-0.8292 4.9737,-3.5139 4.8401,-5.9086z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
<path
android:pathData="m1.8431,3.6774c0.0637,2.49 2.1825,4.9175 4.7334,5.973C4.1906,8.56 2.7012,6.0125 2.9261,4.084Z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
<path
android:pathData="m3.7281,4.3834c0.123,3.9776 3.0609,5.3193 4.9155,5.8407v-0.0428C6.2908,9.5889 4.6901,6.8804 4.6901,4.8705c0,-0.0692 0.0021,-0.1377 0.006,-0.2062z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
<path
android:pathData="m3.1313,4.1769 l0.3971,0.1419c0.0512,2.5097 1.2808,4.6654 4.443,5.7667 -3.1989,-0.8292 -4.9737,-3.5139 -4.8401,-5.9086z"
android:strokeWidth="0.05213608"
android:fillColor="#ffffff"/>
</vector>
<vector android:height="24dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="1" android:fillColor="#ffffff"
android:pathData="m48,32.2c0,5.3 -4.3,9.6 -9.6,9.6H11.2C5.025,41.8 0,36.775 0,30.6 0,26.125 2.65,22.25 6.45,20.475 6.425,20.125 6.4,19.75 6.4,19.4 6.4,12.325 12.125,6.6 19.2,6.6c5.35,0 9.925,3.275 11.85,7.95 1.1,-0.975 2.55,-1.55 4.15,-1.55 3.525,0 6.4,2.875 6.4,6.4 0,1.275 -0.375,2.45 -1.025,3.45 4.25,1 7.425,4.8 7.425,9.35z" android:strokeWidth="0.025"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="12.7"
android:viewportHeight="12.7">
<path
android:pathData="m6.4048,4.0804c-1.0336,-0.0215 -1.9242,0.661 -2.2155,1.6047 -0.2255,-0.5085 -0.7295,-0.8719 -1.3186,-0.8841 -0.81,-0.0169 -1.4897,0.6352 -1.5066,1.4452 -0.0168,0.81 0.6352,1.49 1.4452,1.5069 0.589,0.0122 1.1077,-0.3301 1.3542,-0.8289 0.2518,0.9551 1.1133,1.6742 2.1468,1.6957 1.0259,0.0214 1.9119,-0.6509 2.2099,-1.5839 0.2301,0.4972 0.728,0.8509 1.3087,0.8629 0.81,0.0169 1.49,-0.6355 1.5069,-1.4455 0.0168,-0.81 -0.6355,-1.4898 -1.4455,-1.5066 -0.5806,-0.0121 -1.0928,0.3204 -1.3434,0.8075 -0.2589,-0.9445 -1.1162,-1.6527 -2.1421,-1.674zM6.3868,4.9467c0.7802,0.0162 1.3906,0.6522 1.3744,1.4324 -0.0162,0.7802 -0.6525,1.3906 -1.4327,1.3744 -0.7802,-0.0162 -1.3903,-0.6525 -1.3741,-1.4327 0.0162,-0.7802 0.6522,-1.3903 1.4324,-1.3741zM2.8528,5.6674c0.3418,0.007 0.6042,0.2803 0.5971,0.6222 -0.0071,0.3418 -0.2806,0.6042 -0.6225,0.5971 -0.3418,-0.007 -0.6039,-0.2806 -0.5968,-0.6225 0.0071,-0.3418 0.2803,-0.6039 0.6222,-0.5968zM9.8723,5.8133c0.3418,0.007 0.6042,0.2803 0.5971,0.6222 -0.0071,0.3418 -0.2806,0.6042 -0.6225,0.5971 -0.3418,-0.007 -0.6039,-0.2806 -0.5968,-0.6225 0.0071,-0.3419 0.2803,-0.604 0.6222,-0.5968z"
android:strokeAlpha="1"
android:strokeLineJoin="miter"
android:strokeWidth="0.4874177"
android:fillColor="#ffffff"
android:strokeColor="#00000000"
android:fillType="nonZero"
android:fillAlpha="0.99215686"
android:strokeLineCap="butt"/>
</vector>
<vector android:height="24dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="1" android:fillColor="#ffffff"
android:pathData="m43.1875,31.1563v2.0625c0,3.5312 -2.75,6.375 -6.125,6.375L35.2813,39.5938L27.1563,48L27.1563,39.5938L10.625,39.5938C7.25,39.5938 4.5,36.75 4.5,33.2188v-2.0625zM43.1875,20.9688v7.9687L4.5,28.9375v-7.9687zM43.1875,10.7188v7.9687L4.5,18.6875v-7.9687zM43.1875,6.3438L43.1875,8.4375L4.5,8.4375L4.5,6.3438C4.5,2.8438 7.25,0 10.625,0h26.4375c3.375,0 6.125,2.8438 6.125,6.3438z" android:strokeWidth="0.03125"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="12.7"
android:viewportHeight="12.7">
<path