From 3d9356bdfa6d361a41f80de974531cea342389f2 Mon Sep 17 00:00:00 2001 From: stom79 Date: Sat, 1 Sep 2018 08:13:22 +0200 Subject: [PATCH] Partnership masto.host --- app/src/main/AndroidManifest.xml | 5 + .../mastodon/activities/BaseMainActivity.java | 29 ++- .../activities/PartnerShipActivity.java | 173 ++++++++++++++++++ .../main/res/drawable-hdpi/ic_add_circle.png | Bin 0 -> 310 bytes app/src/main/res/drawable-hdpi/ic_info.png | Bin 0 -> 307 bytes .../main/res/drawable-ldpi/ic_add_circle.png | Bin 0 -> 251 bytes app/src/main/res/drawable-ldpi/ic_info.png | Bin 0 -> 258 bytes .../main/res/drawable-mdpi/ic_add_circle.png | Bin 0 -> 227 bytes app/src/main/res/drawable-mdpi/ic_info.png | Bin 0 -> 222 bytes .../main/res/drawable-xhdpi/ic_add_circle.png | Bin 0 -> 359 bytes app/src/main/res/drawable-xhdpi/ic_info.png | Bin 0 -> 355 bytes .../res/drawable-xxhdpi/ic_add_circle.png | Bin 0 -> 528 bytes app/src/main/res/drawable-xxhdpi/ic_info.png | Bin 0 -> 533 bytes .../res/drawable-xxxhdpi/ic_add_circle.png | Bin 0 -> 640 bytes app/src/main/res/drawable-xxxhdpi/ic_info.png | Bin 0 -> 649 bytes app/src/main/res/drawable/mastohost.png | Bin 0 -> 13151 bytes .../main/res/layout/activity_partnership.xml | 73 ++++++++ .../main/res/menu/activity_main_drawer.xml | 24 ++- app/src/main/res/menu/main.xml | 4 - app/src/main/res/values/strings.xml | 8 + 20 files changed, 286 insertions(+), 30 deletions(-) create mode 100644 app/src/main/java/fr/gouv/etalab/mastodon/activities/PartnerShipActivity.java create mode 100644 app/src/main/res/drawable-hdpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-hdpi/ic_info.png create mode 100644 app/src/main/res/drawable-ldpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-ldpi/ic_info.png create mode 100644 app/src/main/res/drawable-mdpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-mdpi/ic_info.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_info.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_info.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_add_circle.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_info.png create mode 100644 app/src/main/res/drawable/mastohost.png create mode 100644 app/src/main/res/layout/activity_partnership.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 99898a6d1..649c0d926 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -175,6 +175,11 @@ android:configChanges="orientation|screenSize" android:label="@string/app_name" /> + . */ +package fr.gouv.etalab.mastodon.activities; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.text.method.LinkMovementMethod; +import android.view.MenuItem; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; + +import fr.gouv.etalab.mastodon.R; +import fr.gouv.etalab.mastodon.asynctasks.RetrieveRelationshipAsyncTask; +import fr.gouv.etalab.mastodon.asynctasks.RetrieveRemoteDataAsyncTask; +import fr.gouv.etalab.mastodon.client.Entities.Account; +import fr.gouv.etalab.mastodon.client.Entities.Error; +import fr.gouv.etalab.mastodon.client.Entities.Relationship; +import fr.gouv.etalab.mastodon.client.Entities.Results; +import fr.gouv.etalab.mastodon.drawers.AccountSearchDevAdapter; +import fr.gouv.etalab.mastodon.helper.ExpandableHeightListView; +import fr.gouv.etalab.mastodon.helper.Helper; +import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface; +import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRemoteAccountInterface; + + +/** + * Created by Thomas on 31/08/2018. + * About activity + */ + +public class PartnerShipActivity extends BaseActivity implements OnRetrieveRemoteAccountInterface, OnRetrieveRelationshipInterface { + + private List mastohostAcct = new ArrayList<>(); + + private AccountSearchDevAdapter mastohostAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); + int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK); + switch (theme){ + case Helper.THEME_LIGHT: + setTheme(R.style.AppTheme); + break; + case Helper.THEME_DARK: + setTheme(R.style.AppThemeDark); + break; + case Helper.THEME_BLACK: + setTheme(R.style.AppThemeBlack); + break; + default: + setTheme(R.style.AppThemeDark); + } + + if( getSupportActionBar() != null) + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + setContentView(R.layout.activity_partnership); + + + + TextView about_partnership = findViewById(R.id.about_partnership); + about_partnership.setMovementMethod(LinkMovementMethod.getInstance()); + + ExpandableHeightListView lv_mastohost = findViewById(R.id.lv_mastohost); + + ImageView mastohost = findViewById(R.id.mastohost_logo); + + mastohost.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://masto.host")); + startActivity(browserIntent); + } + }); + + TextView about_mastohost = findViewById(R.id.about_mastohost); + about_mastohost.setMovementMethod(LinkMovementMethod.getInstance()); + + setTitle(R.string.action_partnership); + lv_mastohost.setExpanded(true); + + + mastohostAdapter = new AccountSearchDevAdapter(PartnerShipActivity.this, mastohostAcct); + lv_mastohost.setAdapter(mastohostAdapter); + + + new RetrieveRemoteDataAsyncTask(getApplicationContext(), "mastohost", "mastodon.social", PartnerShipActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + + @Override + public void onRetrieveRemoteAccount(Results results) { + SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); + if( results == null){ + boolean show_error_messages = sharedpreferences.getBoolean(Helper.SET_SHOW_ERROR_MESSAGES, true); + if( show_error_messages) + Toast.makeText(getApplicationContext(), R.string.toast_error,Toast.LENGTH_LONG).show(); + return; + } + List accounts = results.getAccounts(); + Account account; + if( accounts != null && accounts.size() > 0){ + account = accounts.get(0); + account.setFollowing(true); + switch (account.getUsername()) { + case "mastohost": + mastohostAcct.add(account); + mastohostAdapter.notifyDataSetChanged(); + break; + } + new RetrieveRelationshipAsyncTask(getApplicationContext(), account.getId(),PartnerShipActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + } + + + @Override + public void onResume(){ + super.onResume(); + if( mastohostAcct != null){ + for(Account account: mastohostAcct){ + new RetrieveRelationshipAsyncTask(getApplicationContext(), account.getId(),PartnerShipActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + } + } + + @Override + public void onRetrieveRelationship(Relationship relationship, Error error) { + SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); + String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, ""); + if( error != null){ + return; + } + for( int i = 0 ; i < mastohostAcct.size() ; i++){ + if( mastohostAcct.get(i).getId() != null && mastohostAcct.get(i).getId().equals(relationship.getId())){ + mastohostAcct.get(i).setFollowing(relationship.isFollowing() || userId.trim().equals(relationship.getId())); + mastohostAdapter.notifyDataSetChanged(); + break; + } + } + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_add_circle.png b/app/src/main/res/drawable-hdpi/ic_add_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..25b9023441dde09ec270c626210fcdc0af2232d9 GIT binary patch literal 310 zcmV-60m=S}P)#>hL<2J>BtFdr3@>7s^<9`zCSgOdM&UT`K-7V2I?(W4Y5Nyo z>@$Un5HXJA0UYR`kvSq1s07QggV_fyk-Z_cond!DTiiOJhh5>TGxb4F(3We;q|Zvo z#n=gkh(*%f9z{JV8j3A124Xohj=73T)L4Zz$HFf##<9572=8SU#jWOvH)qeWV-rj| zW|}l_9RAK0{8pRu1-9atPV*RsT`*~vyc>uyu~Vj`Kb0m^%-&mUlfwHqpu|Eo8^0GU zvFTb=n^r>&rRq%eF-V`e)IBEGBp;1b&PWXhaz=B~#{QMw0maZ>J&Z#OHUIzs07*qo IM6N<$f_h?t761SM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_info.png b/app/src/main/res/drawable-hdpi/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..9d95cdc960d2fc5318fdcb14450cfa4c754d5d0e GIT binary patch literal 307 zcmV-30nGl1P)M@8Ya72^)$vh8#!B0h4XI^zx(M0RNUT zHi&S-g=~*C+-_us1UX7WGsN(0&;n@#sq_KA4cg(|0)6#`P>y7SexT25N?BT0GShd* z)Wj0@?SQ-i^G0UN^PX4+M`IhYcRb0jt~3^PG^4IcV<+MHKq(#s|50NX;aRS&#MvIL z4XZ`l55Q`*tp{LBjkz?Be%KSE`oQC!m@=2kW22SEeZ!==%sy?neb5Ew(&>a&u)wzM zP<=WL8M?`lDw)!LW~_UP*Tlu4EmyP+XEH@|a{m1*{QxoacWhvJdu0Fs002ovPDHLk FV1l4JiZ%cM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldpi/ic_add_circle.png b/app/src/main/res/drawable-ldpi/ic_add_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..0529c9517f23d2311514f57e2e1e294b52e70572 GIT binary patch literal 251 zcmVp+M=2ps4Ij&_qKR&<1*0ldJC8vZ+QVBEKdnib!`gA3SD zJ?)NhV~+*T9-X1`1DvUYC}tTyewxI20&A))c9%(Vr_k39EUA5NC(W@sk+cO1YD{Vw zr_qwHAnI2Z;Vn=V;Yf)e_ATq`=UkAeENMYS?wEbE6*1A`g}qHh1{M z+kWQDol}_6%AszU@FI!(%<&b4E0}p=eN>}nXeRJYx?RVpduXDNOM_!Lxsj#X<8#wSkYQY_1UDe$mau4zJxMbO7u%gV0veT|n38{ND!H6(W=9cZbX?AZUO z)qZ$|>1} zS*;>(mnt-$`F361cJG}zMSkJ0-pKw-Joxh13Eg`Q=RT)JXl&%{TAY2Oc2;USlq5X4>P6)n3npkTgFU9nw7PB+L zJhauJ*2b8JR&s1|O9i}Be2DktQ%Ex(cE-WEuxnVXhQjKsntm52P*zUSkr)R(D91nr z#m=Be1s$A0i3&;?r=IE+>%EURs)J`0bYo5-4fS-_AAxH7wc3KcbOtR{(9jvwFPBK> z1WM7;dtnNiR!#M(DcH7=BRX7u1lEmhETvj(g^6^{e`}1{prOAqXY}Nn(002ovPDHLk FV1nEAn0f#J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_info.png b/app/src/main/res/drawable-xhdpi/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..d65e6aaacebe3ef78e8eabbbfd2f5fb9fe17b970 GIT binary patch literal 355 zcmV-p0i6DcP)VZ%MF$QF?xjfR3KT221QFbW6X{OGrrm%}>Z>4Vdw^#AVG;rqXGhfEoMpQR|ee>bwm2t8zFC{w9|+=Sz&4& zO{l#!rq+)4rgBuIkCfixGsQ{JthZeg!Gt+gyjBIXx@xCi=>;m9DLQ9;FkP+IR0XBZ zM!&UDL76w`qJpIN)p8Z|U^kl0u5kYmNP2^ETeG`B4YRl2ptTB`d4s}ci4cs_n@Lq!DdhkF002ovPDHLkV1ley BmnZ-L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_add_circle.png b/app/src/main/res/drawable-xxhdpi/ic_add_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..f28e33d5085104f012fd9e0a40774752ef5d63c1 GIT binary patch literal 528 zcmV+r0`L8aP);&gQ9(!*b&d%aWa$}s@1T8jg+Z1&h0_r78wWKn|}X+L1MK^k$B z4NLk0J8(+fNA0kC=Q^oqhn1XRA(}*V!p7Kf^MJh8R*u_*ceFLBH++AK(a@scusY+i-goD8Bp@|;maF#U3H7<~_h1tXz z1}@05`Y0o0iaNna2wLa?IepL$+R~tfT8QePG8ikPn4XbVMIGW*3&r$;tQu;jjbeI} z$7Kvo^?kaOTw08cQA|%VsnWKB`p8V-yAu7x1f5S!glmudtA+RpcfMA4glq5ps>-Rv z<*2|Ml)PaB>#$qz%I;W)If(ILO{vW)3Bq*FhxM!_{ZDoIU3eY{Y=$j2EEx!jDei_9 zB)6*mXAbgiSXFYXYBoBkxMB6cV6}gS{pmFp0)yrCQ(qm%N&T?oqgI7+A2n!@4gz*% zQixSy4L&Rp2yEA@qup7D-FSEEvUOO|8x|rbViPvRhTnXZvs(3qLwL(tAG;J!#8EOm zHc%r(WTyQz*#cA46#KG1CQGKr%rYIQIJB(6>85HZ7AZ14I;cna3;dlbEsYF}Ks%1f ziO7P6YF?UORZ8ef)WD*DwNQx|&Fo!{t)Ef9YIs+6lh~pbpQiz)Myk+PoZp4lu{!Y% X@I~G0+s?bq00000NkvXXu0mjfXEFCD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_circle.png b/app/src/main/res/drawable-xxxhdpi/ic_add_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccea173800d296ad273a77c964fbe8d68080b7b GIT binary patch literal 640 zcmV-`0)PF9P)RZ>Fjid+N*lS&~WJwmh(k#;$X z(;Xsk(Ve;9Gr^p*5n;w3&Yg449R;F@B8sp^9C;K_LIdw;!6w-vuNvf?0&*BLNtwbn z>IC3;WCt~DVNyS40TuK-DTCR?Ez7Y^|pi?@i z5eVp+4ti()VBYXL?;HKFRv@4c`eAk;pw2%6h3=AtZc&HswhyK-o`kJ+?9f5EKtRiM z&{){U51?ioWO?77TgE{fenWoOD9A?AuY}zi1zr2s)U;91EK8ZM8v|KveJ5iG)W;la zD=Zs%9COCro2Sv%&S~*Ija}0YTH&2w4z+Uj`A4c4?zM65FeEbNCD7Euc|lzKr-h~l zPEuwTPT)cD#fn2RVkj!(?1`&CwZ)3gpx9W z9Lfyfcw`69$YR_)W*&F=^rZA=7e%DaVHQvkru1eRbNVq;xRJvA<`pJ&ayId<#BsBY z4Lz7a94ljf^8hhb&KN9h95){@s=`U(RV&BMI=id%ucM#yLrTbv9m@#E%}1HBbYzU< z=6>*r?ikMXV9VgUaZsD>iNbMhoa5$&_?{K)#=Q~jn}Qo}g$(p0R$w?}AP2MlpgU4f z!M_^(Bn5T-HjA zB^1ySA2cF0@zp?{+R==Kwp>jNU-2f*Eg-GC0^TUcmF=9B-#@Uq{JAW+#Z4K+r8Z^cPE)_6eY*kJ{d!+Fs z#j!*Ve`RA9g#aa-&FY;Q7>^V(D6x**yL7i$ahe2S3}YEPIAwijgLUT}mT&B;%G$nd jEMh47FG>_q^lN+rG7@bea~%UM00000NkvXXu0mjfu>~Q} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/mastohost.png b/app/src/main/res/drawable/mastohost.png new file mode 100644 index 0000000000000000000000000000000000000000..422e491c127ea504b9536561d49e80aae003a843 GIT binary patch literal 13151 zcmZ8|byO7p8}2L!NGmD1C;|ck(y^2vB_${z-Q6HvtI~~ht29VRHw#FYbSma z4dzVqLGJyBx6W1{yiDCJftMD}W|mA!j;7X@nwF*(KCT0n;sC%8QhN3Bo%h0CHvao} z(|5h3FZh2D5Fr12xvtpwG+5EJ>Qrd;S6k2awjBPJKhINeIm)-J=Adn0zQmSMhV%yx9a#`;anL9AZw}AKfa&VnNEq0oAI?ib7^vlse081s6!9Sx%;(U|b4Nt67 z;e99-7`<+_K55NVUiZ_(fVQo8NW$aFJmzV9Q0>riy+J_^t?DR%zT(i_kQrQkI^mQ4 z`S@=dPqTuh#H~V4838rMW(f(spf?iGfIxidwy%7ki#hKI*8*#rv>4fGjKljSn zngl^e;_f@?0IEQb7YMO9(B(OBnGF?3HE;gG7{{W^`Nh-X^yCOcpWiii?VZqmQC z0|kNHWYWFz4YdloG}fYmhjjFP8?oGp=2Yk6*_T^RB$YD%Il__zi8UvCXwE{|nEN1K zRFO2Hm$_{y-=i~1O9<$|f*J!bsg3FID2$a2!WP9!(P{c%yc6T6CkyCHT)*^U3~ zwICeisQ|qp;y2c5W!Y9}G7rJwRrc-0K5EteFI?$bq0zFH3Z-M6Ib}afYZV$6)TKlg zN2iw}sPX=JP^ZKl$yg)1Tw7f~4+UGc-oML(xE!vTr{L0$s@@vb<~bM%w2;FB zqmt2LXPR6xY%Zf5{-9-{v;a45Lt#muN-i-4n?+hz}}2V<5cqitZXea)roZd?}>3f6Y4 zd-9*RSQGNO-rM`e!Od`XN263T+}_bhBHNu&?Lkg=hM1%=VlpuBEgc+cGh7I4wYK8w zXiykn$TDX%lsJ=-5C4JC>>MAP4RTl#^U!G&X|Z5gR*v4N%X1hc*!ive>gwu}C(t`MI3U}@Hx8ck)5>5weU;Bk4_*(E8t=9F-XN07 zm$;aE2o(%1W(V$+ch7}-`?ERJB%6MW;Y;T@i+A^E(N7s~>z5r?^}Ge0tSV9(DW)2I z`;@E@7V7~VyIy#Zz097C<|94*30xWEXI$kd5Wus2e$vV9Yn713VIRGOqS=a4&Ly$~ z@3e(@sJJUOzap2txBfH@7AZM{b|R^N5^-o3_ltcvupvkrlcVjjmrD<8j_EK?{V6Ic z>Q3~rS<=OMB)dgpnlc`>u(Oo=38z2zPyD9uxK^FxonB0+za$&=j=Hf*@g{kBwQlfK z?!Vo5io$Lou;t13o9iI$;Yx0(Kee>vz4%<0ouS**$-Aab<&a&u&%WLAvQz_4vu^zwG+s!b4X|(2oj@y2~}6zM}MY{ja!_Dd1~q!GfL!p@h)f z-)``@7Q~-StfN-xf63e!O>*vSWMGxR!vtPF%ad>vMf{iK(ZuI3knj;!Vc^z;8&M{> zUeNhpQqngn@SI4M4h#hLM-9WFE7P(6H}l_*W}iUFNYm})Vax#$?-HqT{#8^e@9JpF z-;rk^;pU<2Nart$yEXjf_ik0di* z(%e6$wMh`XEuvWxt+nVq_odfqlNvyTap43sQ zxFbW72gnC;4mKGz*W0h=dgax#WO4)viifpKqaZa+e1c8vH<9^+=PM^!j6)2Zzk2Y> zMJaWoQqwDGAJP6ku(2!U6h(H);A27AYU*1E<+ghM^~}snCp$ZPs(QAh?Sx}713kUPvXLZl((8?(i#nyp zE1;O<%bQOw$(&CIGA(0ZQ?YglTUFc@aS`+@PK zi=kWB~VIbHx7d~!jE_2Wv-UyrSVKgYe`6^G0 zHwOOde+A<;W_Yb|Bu^0ko)LocW}f2cuAcAOEtTBd6WQ4Ar_pTjRrs_F?mxU^3S3FA zvhdW4Gcq}1?|Dgv6Gt|-Iuxvt)5dn*_f~7lfU94BNP26kkB(0(a}yJfwI8F@OS|*l zA0C$!bKeAi(AVjek@>tC5eoT=G~;?(wRSB2R@@42tiC#Bg!7Mb&uMFMa)*((spt1* zi&u@-*vN9wxs>X?^N-N$*RZzGVsvt4lDC^J3YxLZJf`ima&zbtM6c5;E8wL^Q+&x6(e1q?wq=);riO_F84M_X-@wQlE(^Ni9(sXcExZ)la* z>CGtBD%>mX4tu~}u}-{1JIl()SF3~hyVlnGo8KwHOs>*yI6_FKi<@PM6~L;JVbySEI|fs{;lEKHR`4|a$w z|EihvRt6Bas(v~(&9awd3i=*yEq7geeh+@0{9y?XUY`GHU|0(}t5mqUe?;iu(^Rdmmu!mt z+Z9XTn$#DXJq2veFaFuDYctHeKog#I9{T}%MZg(*=qJPeU4(CdwZVyQpzVFyCs#7r zK3tNsZFY;d8i1d`?a9xC&YaoB8L}6*ZGkK4nRebJm8EP``)#ScqaNoBn+4YNH(K^NKp`pnaD zad+trFlXtq`x!Wmx~MDv=}Zf)#Dn314x;iuFU^pc+&wT^>5N{vRvB9(Z#+o^T6M9% zgnJWh#?i&RRdrv4(GEfq@o*)~hJ$)g7gODA;_s(_+v(GiRw7lWF_BvX+YMmhgq!^$@ z5%l6!BOT3nRSoy%&MjD1sHSUNZ(B54Cdn%6a1mbH^K>$a3G~L$>HsPA93VX$FB+g+O!1Ef?d+cJtZyPY_EPUMzj>6edAK6tmcf zC4?&ly_YSLC)hm3lav#=cQF|g87I%U3j2q{x=${{=MRyG2%-E}&^9_4BVm>D6%&w40wa}a+QGiC;<*o3#T#Z*YR6pe z(R7}9-C^PNL>QbRDw63(LZBK>SG@LUhcRG@$cHXOpr;GQ?JQ)sq4@UWjWNvn0fG(t zpz{5d7l2%%LbesnA$@4g@#ge_y)u<_b*$Fx?4=gKU!9?1iKHT+_H{Xj^Y{yE>)ONxwo$5F^{7e$)CUFtje4jNy5wc%C0UNV1Rr)vNiI zY4njmIuAAh^GI4b5coj%+lEDyZI+Gd*M?tHFx2kbcmd*HOPPeYNe`#3FYgj8f7 zJHT~nfOqrwHwG&PrJpJ6HhViEdQb3*!4bL>?%tS=Oer*H7rnsyWBTGWilI!{DMCJR zZhm7U-PH=>E>Y>JIO6e<4tY~ApGdAd>6hOjcJov8_?m-^i+xW2KnflppIS+Gpkc37 zs&pRM%;V*f?gQEDJ8d8-uYEeZ3{(Vg7_^9n5!g(yc#KsF9{EiEC@=St^gTH!o3vKT zy%~%8-dgkBy=YXTy1Kg9bW%Rp&nwsug?BD_zFv~{WK#!&?Rm#WjVfVv=j4mM-%!aI zfE8I=TiZR(_C1G7r?#P?;pp(F{QEohlEvuIc)dt*Hr40Z5dvioW=9bVOPE7$ol~Yj zlQ>qKR^z?10a6?*U8V5g_!LYE9V4TazNF(wJvjdeTu*PRWo2iRQ}|m1nX2^gzrDEj zz?b#$dd}@^^XnosG=zS7vB@ioe5TaI3mv5QdVa^q1x2^Ym-}+#*JfpVW}dbtCtE}t z(-%ndJzB!OO8`uQ2M(>?NTeLu4$Xb~leIflupG`Rt?>oYw^<)7oTmIa@g9*0 zD%g5)I_vU5^X7^TpMTT%D84k@A1$(>1z1>^nvB&QsWWntGKwAal}r|)9UUEejNs|E z<{v1Ec4Q#zNzy}T_?oK7dD(Ex1nhixR# zAZ)0$#&Li`mt`pq3>^G92%jXUnZGc}QX!r2tOvNxYaxA&IH}Dqr6Z@tk8fVNsQ&fk zVdodU>*i03ukMp{6xX%hlii_Os(7|pf4Ad&TmcFUAu*rc7W(E{&b?+`Ji$1wta{=S z#V43Pz004SqMCFEaXTi*_RG`$#b9)*B-7t4)BQyoB~t73`D4u{doC-fIgXVb_Ffp7 zOh<0?nDI~8rf!sNnEvyZ?{t=B^~|>-fOI-iFl!tzmG_IDw7-ZR68M2vdW(p{^%P9ZMKw5f?NJxS5muB5?0yp`gQ%!}>xK(G? ze9nZw297@xis`u>sr~3g%hdL9z2_;iAz^np)0;HZ&-i$j>SmJ;Yfn8fF)>KYU7LRH z4hNlR0R)Ny>IwUiQOVN8!&W^W;V&GY${U&l-K!d-AUs2>F{)hz$2Fkn0JPCVWE&W1 zONCUm)36I}epW6AP?PotS=;g~b{U)&shAD>V2Q(h8SLpU!!!u})v=D6xN^yjKeWhl zy_F86Wm?g{II6cS2%1d)(E7_4R%iUlo~Oiq%HmI+g<-8rqm*`1rNCL&0&feWVHEcq zN35OrNz|zmS95!Ac5=m-MV7%Tnwr}wO=PFDC%&th`7<3+*0K3?J+^iUe{O7&x19q1 z*yDFDC;?Yh;^NAt>VUH@KQ=Gr94@+`r?bNWgs@p$M3K_PGr{LXOC)J2SUb^GIIy=1 z#!G9bL&UfNV(N)`?Oz_WI+?m2Zj8f}!k--UJQwhli!*T)Wj`e<>PN++s(lzv4zra zk3Hx&E4sPPr$A>8P>K5{D__-F`T6;4Ko>9mg`l#Gogrr`CmI9wIbdy4 z9Q(-0W~eaNJ6;yPegpQ5k8&2*Y z(%-q&^wfSz+l+%vsHXObsz`ZEs}jYcwmz8w_aQeOAFnl0MnB&-Vz(xa1_}FGKQ6ZmAu_7C9WX}1T}82@{#@O0Mg z3KC(T=ir95tjyGJo!P6Yk+@@!zQamIn|Cpc>jkz zGZW+++eXvkS0jOksU^fP)XC9_r)7ZwPPU&E_Soh<*cddbDBFVy>!_o1fNirl$2b7= zf|0s;GxA-F?RDAU-jJ#ZEwSoV@voD)&WcwsB;rWo2ux6wI%mF&6%A`o!f(v_0cB#Ks{_T{e2ylB!o726Bb(GtSS8*#S>0KU~9H{Z@m3o9p z2YwaLy}2mIe0-=BfF~95g#LBoJ<%IaTsXPtFgb1tp`hZQbkBMp*B{S}`&$aLOkPF0 z?>`q5Jgp?>9iNRpAj1Dm!Rj4J(a4#sJO6F<+a}r{o%Y($L91}pTuOjx6#IajIZl3$ zoqROgw(om1NMlFymRq5`b=uSlF~+bNN{Vb{TA0>z(%EZTRF^``xjOxNKp!M+wfTY0 zB$um^RT<>>C!%Lb3TG~gKGl|gb@ONTUk1OOwsjdDh>lmlaT_!uu1kJx=$xxDcKnfd zR=;_P{Si1K1`l_ZG25U0-Cli8Um9}2H6`C0gbdwb{4zz;$^$yeEb|InBWX|M)F_g$ z_o6Y*SYvPG-PYHd#FY;FMXw0$s6y`N6(?Hvj;|6_=h4Qi65R`8BQJ7 z2>4H`=#0PEfBnEb{77%F!j3kkcW`vH!f8|O&bH5T=gQ&Mh!F@Z!pt_M5^zB$1r^Iu z?mRN7tx*YM>g8e!u680#=Op~3eFR)1$6eS(EQC|4@=JA+3+VSBzCtqab+^8nWJc&q z>@C>^ln)Fzl?`aT&5O8VyD11fL@cnu>b%I-7V7ldNr+V2{8)y_2%}(}jh-5d3PzWw z*~ggl9gi>(muQH!Q+T;8HC?!Uio#%Hsqd%T@Hwr9fYrH_1odi3_Y>P63U= z)Z_dv!;ff2hKKV9JahtD15l;!dU`<`_b&%K7=(xo-_TzzlMV9(7<&OHN>H??fjcD} zojmbo^Vm!EDh=Vw6&%#2tj~GB;^u|H^+yb+GN#cmg4Z!s?d4%iR80EHSI8xV+O+#@ z^6c(|n=VS2pYdt9TVDC{&A{wWy>4BgWv;ElHs#2XkVmX!sYxd!HAbcDP!plXLtB6k zb=pPp+r@L-@N#+B;Z;!!v&Wg-!AErmiw1slLgxiu?qcnH`FSQ;l)fx5&>vsE@QkM| zzQ|}ALUKdJE|1)*W_|3vRDpRVzb32*yZ5+caZR&QDL9E#yxG@)_?&Uk4Nj^eBl}53 z%bdS!>B0Q{(}p+rhDRlAX5TC64l~}3aaa9mh%fY?9wqfE;8P~2W%L~%>vN8JT~5or z>N|z4EYVMnp@Kj@pRRT6>U@n~SzH(@2fVm!*$7Av`4FUE-2T9q?&z!2r0w!}i6>?0 z9e(lTtBkwW)j8~oqpXCv>63{$b6vq;?tW(hjMM^6v2G5P+XpvU05$awZP^0j_e} z+WZ&v|9l=GJ)g;1k!wC1a@kK^T@b{YGY-@5z%733vSr5p?X}-r!Rd9Tx-U;e065<3 z*}a{8NPy?wSJ{nbPJwwl_Uj-bIO|XPSyYML9Fh(n;JdIq0dD_{1PoDQ z9SFzx@9aR)GSas{FhdXWoe#M-wys<@Hs9JAiB$tm!j*DY-e}9Y2-kzYnYJsoJ@4R) z>TFv9(r$9F`_AHJkrM>^XDv07m zD}v@F*TbJ934_+_7m?6?s1PT21|(7QZMSStp3<`+{Mj%CPnU7ccnte91ole!Zuw%2 z{wO_JmW=<4bKKABdS2x@-Nv(3mwgSFee}S4+_}Y>16tl1fsYbk1XxbR{xGOPHpu3i zi<^YS-ZAz85Kr-f=kKU zSh)XT?=p*oM#nScm6g>moA`U)7$O4&Iw&YVOl%Mzp-{_;?qa`<;iE$cx*U4NF~*=D z#1{>e9jE>BrVA-8 zViK96wSxnzIj|iu&-;7bn*5-;0(Xaw_~y-&)aRBx(1i}@f*oiTbxxQmP%?}y;DOsV znaJLrKI0u<#xs%+YvrIms-51mPEcUB!#bhJ%{ggfbtC7?1B+;izFs1DV``XycWv{&+0Ob8K<4m zajtXFl@=7uS?pI!5ts6D`NctP?bF{`67&Lv9AZd6Pb-cxv|FwnhB%nDW@c7k4NwiR zrA)SWRn}ooQ`sa#q*N4qKB<`U6KZ{3pox8g2V8Xm0dmkBGudB?BW!R#{l@c7dSprw zp-fr%w>L@yA@mMXYbKNaP|{)Vcmy%*P7BNFW|MHYSEwiIi~=^A8;Y}C0FC3sB**x> zY;K=qQn^0;f@hml54^m!a6~N2(CoavEj94*5GF-^n~6tE(`EGhFLU5%(RF)mnS+I^ zNVkgG951{{p8F5V`ws=znDbDF5)rxIJSM(aY3kU_Da~M>)s>2HA8sX5m-msy+!Qp5 z%6a3z|MHzNEcm_S`yCHECAli*EA|5qK1J z$dD>|JL0Ts#qK`oxo+yxyq2>8E)W?xtg3T~OUn*ks4rO%5fyu6{WDuG z2(%r7{5=>8-N0LYo5`Rk{&P(V6!-^AM=Bz1ITCusIkDcNvDiC^p~W(mM!<`MT}47t z5#nu(7=BC(8kj)A7A^mCc*)Cw+}&e@tp~SSnT~BGFTS7b)ip#h2CigYACQ0adAp-< z8U9^9v4TlZt=A2O0lq|PjU3R$SFiHAi#y$2M(Cw)$(ZhF=|w~8Df!hu!Tspgo2pB| zL}7l1k<`szS;wi#99#tt;n(UeD5pyxH^4t<^JsW|(c{MtOa3&WPhX}E2W@Eer8+!S z=tK(Jw(sC?4i(-A-Kzq(G@B!fB6uNp-23OBaQm2{fkI3xc=4$d1+NUJDTmWM7B*j= zaHPU3E@#@Bh3LhNr_|gi>3sMa&$M0kzc01Nbmg$zQMz7Na=q15w)J3Y++Fw(TF=C2 zmA@;xWhahd{A~I7`JEXcfwixk9>ven;}f(#dPsxBc8PL5tR-1q|7n4VjgC>cY=#`# z;JyaXP6ym^0eA4BoxL4lFhlOF4?ew`BXoIeP+lI=IjpO@kmE4#8ecXE9#>Pej5AmM6_uQq4t+GrAYh33>WKM#AvzM3)X3# z@ym?zbjiZCdSpG)%Ua6)0@l}-|>2V^+8@F-D%F0^s`LJa}bpBd? zH-Mq@DBn=t`v>!SCI@|y7oHa8A=>e0}N zS3rX-DJj|8`q{smlil_XQ`bhr-vqLhWJOV1eq50LzQuDv5o^P;M=DreF9p82B>t|d zc{cD!XBB4+F>Kbp#h8#cXn`R;xaCgWfP-TU__txG$=^Kc0>*meG$jLG+(+`i!qNkKyr&!>y(NXlZSjJ?H{>cfpSTc=wl>L59iH z43V52r$8FP(!(mvGUN=`%H=mX{{yesSuY;39Q#Fc>}l$tj1PtL#mOpvf`zgCy=GY@ zQz4_oMFkoy^Bsp1wv$P-F73A}UA+RA5b1asWuMc+oXpRP0a30f0tJOWNf(siclB2| zyC6?mduO1klEPKw)E_zP5ij$t>iGB+m5`D`6^I_`zv{J}IrWqP-31WW8>m*$c~w?xv+>u=$y@Tri> zQSUz*ZIe~_r&lU|DIJ65eqz_pJJ#b`$4XY5XDl}+^Z7#>KSX+f^EWL^l)ax%lGMl% z*pg0UUO|`SP4AvwR))6)Ii_nabP!S;SY}sz1}-=NGy%{anUuJ=xJW*i3GCr{FxXpK zCMTq)H)+gzLtsv*-8EslO}L}IJ>BlcwwA(}pYW-7^Va#x3ir4SRN{oI+Ixc6g;;A7 z%H9uAScvPs=frcl>He9O3Ov`}Y4!wGH3t{=kAT%AF$q?U?-4cvxVd=p8B5Ci&?PO~ zUT_!gl3Orx@AQp66U# zgA;?^WxrxWK7c6Faw3=BUSa&Q$spQeBWa9qpS_nlKaI8XV8hbg_U_4j!{bzOh~Ls1 zj^xu1KsyTn2Eo*!pJ(U$vF6GHTKyr!G&lWVr=Nz*G0{n%`rgtP|a*VzV zQ3hchpcEKm;7@6D_-H;KS7u~qOK9k{get9EHUF+BoUB-$E83L~>frV`@)C4EcM?II z*XGu*3}NI@k*V_YGb1;~R!b3Z|HM$|6ADMED~`#Eo5HCW+f*YO@Ls$5{XH@^V|7hWVSCwN=h;h7TiyJeLP$WGq4KlYP*iS2xnlDdK4c-{NhT% zTg_DlJMK)c5~o<%F??eE*P$GAX<@9dGUj#pcYL0@s84K~?$UwOM;~%+H?@Be49H&u zEtrJ*vR#4pRDW3z^hw;0yH8G@uc-3sISmlRc$pV^g|o`+UwH3%?j2*~;&ZMnv0 zpar^+Cb^)Np(uA`nv_qhvCt4Ug8qh>xM8}sj~IHSwY0nG?eB-?y+k|$>pu|7UIKJ= z)#*n{6YuyN&+avz@!T$man(f!fQzX=4JP8YI?4rx4nG}v$!imb3!r!nuKQf}@7Uk! z>+5qGJ9pFr*ZBB8-+e$R+HTZiM~caBoxjwF^UyKlt||t%PM2S7w2Cm@66XR@WU4pV zhYt6hxq+p&@OjVx@|DxA+FykKz?Wkmh{Mf@{@Ezh?Do(9?RPql@b=0(3ltHf&u5K>WM8+yTal8(M>F zx5hI_4}%wKit#krSW2|$*{0R-5H+1LBecWQwfomL&|1=Ut;z5W|HIJG&N&FGgMDxf zy4YrIe%cdXR1jPfDaORf85I&5wj4jSe#?rBVevfA6jmRaik+MF4-AY42ji~P*4GOS zGO~#17B4=Kd z`}2=i--J%>?aZ@>gg7u#9E1)Z`APA^IdTji0aQgfzWME%8U5i>fYnSLiAOCvignNi zx-euhppSE;AaTcxY`W@Fw|TJtIlU4<81sKLHzuPeqxfpSovC?AbP%Wl(RL)L>cFW& z#m~Lr?S-eoeOPf;8I3fJuQ0Rj4#NHp(*D^_^KWyzI=b^))w7_BFl^980?;a9ZIbSR z+CzoM5UwuUDn;`OUp?MbBC&~k$binvyiU0T1M22kEPvmF&Xxeb)W+_zS6+VIZBkG_ zz#gk{%x_N2ybqn&AQvQvagNd#laPONTZ8~MI-Ce24qHW<<`w$fEQkbn`|0DFw z^&bZ<`M@MqJd3w=~iV;&87XNYq7lKKLYlu+aQu*v%RURu%)(yE|fcdvHz(8+J= zeFzA)NiXJquoaQE*O6Dx3Y^8nV8r5S+=4?T-z zo47aQ_6eX%k$h7RKegMbCF`l((v!YQ{{6EmGY=JwQOAKgLqZaXaEb4wH#>f6UDR#$ z;po8-?Uv$YY-yvI+PcEo@Nx`paL!XvW&9*HiOZ*&R;yYtI>2Cf#&WOnnv2_|uCvVP zR`f=JA^=54YACLJDPW70NX2^1lOE8d8o?I0=o>J$`K4C}WJ)Djz|J+lySXq`DSymc zwxS`aMEmUUQo~T(%zU@%_NBv{EeuOQJdc&ZiakN_X-5Sj{`So~?zzN`JlVDya_fQhFhIr~1mG@ue#vVp-Qk@y(aIIuA}Mn z!?fRa=qrsgr@Hp3b&J$gUy>&Co|kN?IOv2!rjH8celKx;>$slNEU6{u$o$TK7Ec_4 zOV*}n>%Bt)4cuNB9qU5MI}2Zv*kidBD*Ul&{!@3mmlQ{E2r#J!phG=J8muN*|2}#v z;Av|E(9km1kp~vO39em?w@)Aj^%3lXPT8SX%tm$piF2R#HW3o=Ph9Q~dplDU!%pHXr)3RBdEO5QtqvxcbF%*utb&y~Mf}Sy7 zdMX3$n4v|%^}KVaV07B@5da(QoBf{%UZw{p?5pef_^`+tvet>W@7Fn1U+u1`C2mew z7n|nRoVC3V=!2fSPnHh&pARZDH{f~H7yDcrhR68BB99$2@4NiB-#;8nF4V6whf`-* zT;pQK^`#Sc#D+!S6Eg*+#FgCt3Em4BkuE4qb&Mrx!rm%MnmcxG_bmMvB^_N?vH!c&f=n=x9?I6(w!;evPJxb-2)6$?&^ZWE*@_~tOD_D**N_Y G>Hh#qwo^0! literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_partnership.xml b/app/src/main/res/layout/activity_partnership.xml new file mode 100644 index 000000000..b20ba099a --- /dev/null +++ b/app/src/main/res/layout/activity_partnership.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index d2f8f6112..3621b3746 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -31,14 +31,6 @@ android:id="@+id/nav_bookmarks" android:icon="@drawable/ic_bookmark" android:title="@string/bookmarks" /> - - + + + + + + + + diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml index 3c89317d6..9d007a3d9 100644 --- a/app/src/main/res/menu/main.xml +++ b/app/src/main/res/menu/main.xml @@ -1,10 +1,6 @@ - Mastalab has stopped :( You can send me by email the crash report. It will help to fix it :)\n\nYou can add additional content. Thank you! Ask for sending crash reports by email? + masto.host + + Mastalab has a partnership with Masto.host\nMasto.host offers hosting for Mastalab\'s instance for free.\nThis helps me to better understand how to manage an instance. If one day the API is open to moderators, + I would be glad to be able to test new features. + + Masto.host is a fully managed Mastodon hosting service, meaning that you can create your own instance without having to touch a single line of code or maintain your own server. + Partnerships + Information HTTP SOCKS