blog.area23.at - a simple url encoder/decoder

 a simple url encoder/decoder
 http://blog.area23.at

Labels

Wirtschaft (139) Österreich (108) Pressefreiheit (89) IT (70) code (42) Staatsschulden (37) EZB (27) Pensionssystem (15) music (3) France (1)

2021-12-29

Most bogus random generator service for linux

on PasteBin: https://pastebin.com/6wfzR9NE

#!/bin/bash

nanos=`date +%N`;
secIGSO=`date +%s` 

urandomseek=`echo "$secIGSO  - $nanos" |bc` 

echo "\tsince1970-01-01.secs:\t$secIGSO - current.nanos:\t$nanos = urandomseek:\t$urandomseek" ;
echo "exec od -j $urandomseek -N `date +%S` /dev/urandom " ;

od -j $randomseek -N `date +%S` /dev/urandom 

Urandom service


2021-12-12

Falsche Annahme bzgl. Target-2 Salden bisher

Lieber Leserinnen und Leser,

sicher kennen manche von Ihnen die Panik, die Prof. Dr. Hans-Werner Sinn so gerne verbreotet über die Fallen der Target-2 Salden. Es ist allerdiings weniger beunruhigend als ich bisher annahm oder als manche befürchteten. Deutschland stellt keine Blanko-Schecks aus, denn wenn BMW (Bayrische Motorenwerke) an einen Vertragshändler in Italien 321 #BMW liefern, dann wird der Konzern nicht einen ungedeckte Blankoscheck an die Bayrische Motorenwerke überweisen, sondern wohl eine Sofortüberweisung oder eine gedeckte Ratenzahlung. Positice Target-2 Salden bedeuten einfach nur, dass andere Staaten mehr Geld nach Deutschland überwiesen haben als umgekehrt und negative T2 Salden bedeuten, dass die Staaten weniger Geld von Deutschland summe summarum an Transaktionen im Euroraum überwiesen bekamen als umgekehrt. Wenn Italiener z.B. ein Konto bei der Deutschen Bank haben und sie sparen dort oder haben dort ihr Geschäftskonto und die Firma operiert stehts in positiven schwarzen Zahlen, dann steigt die T2 Balance zu Gunsten Deutschlands auch. Es ist auf keinen Fall so, dass Deutschland ungedeckte Schecks an Italien ausstellt, es sei denn Italien würde aus dem € austreten. Aber auch dann wäre das keine Katastrophe, denn IT würde auf die Lira wechseln und es würde zuerst ein 1:1 Wechselkurs bestimmt werden und die Lira dann abwerten. Deutschland verlöre gar nichts. Dass sich Hans Werner Sinn bereits oft verrechnete sehen wir hier: http://blog.area23.at/2019/04/debt-mystery-of-luxembourg.html

2021-11-28

Your own currency devalues and thou have foreign currency debt. How to solve that?

Consider / suppose you are a bank, an entrepreneur or a state foreign currency loan of the Republic of Turkey!

Turkish lira TRX is currently devaluing against € or US $.


What can you do now?

Well you can of course reduce risk via a forex pair swap.

In case, that you want to hedge the risk (that TRY don`t fall to much against € OR US$),  you bet on falling TRY/€ forex swap pairs in derivate secondary markets or if this doesn`t exist for huge amounts of TRY, than bet on rising up €/TRY US$/TRY for that case. 


What will happen with that hedge?

In case, that TRY looses more value against € or US$, your risk reducing swap works in the opposite direction.

Your losses will be smoothed out straight.


Attention for case if TRY will regain value against € / US$.

If TRY regains  value against € or US$, your foreign currency credit rate, will not become cheaper, because your hedge swap will loose for that case.


What we ignore in that simple example?

We ignore prime rate and credit rate changes, that could be triggered, when FED or ECB increases or decreases prime rates.


Kind regards,

-- 
Heinrich G. Elsigan
address: Ziegeleistraße 70 / 2, 4020 Linz
   mobile: +43 665 65589089
   emails: heinrich.elsigan@gmail.com , he23@area23.at 
  weblog: blog.area23.at
       wko: firmen.wko.at/DetailsKontakt.aspx?FirmaID=d62c341a-2e44-4671-8715-c4a17aa825a4

2021-11-12

Politische Korrektheit

Wandel der PCR in der Zeit

Ich formulierte letztens die Hypothese, dass die Steigerung der politischen Korrrektheit(sindikatoren) seit den 1990ern in allen Medien stetig anstieg:

Das betrifft sowohl Qualitätsprintmedien, Internetmedien, Radio und TV Medien.

1., War in den 1980ern im ORF dieses Format noch pointiert und witzig:
so wäre dies heutzutage wohl kaum noch zeitgemäß.

2. Waren FLAMEN, SHITSTORM und Godwins law in früheren Internetdiskussionsmedien, wie FIDO NET Boards, newsgroups (NNTP) noch durchaus üblich,
so wird heute jeder #SHITSTORM in Diskussionsmedien sehr kritisch gesehen.
Heute wird dieser alte CCC Freak Nerd Stl höchstens nur noch von Fefe im deutschsprachigen Raum kommunikationstechnisch benutzt:

3. Waren Seximus, (alt.binaries.pictues.erotica.* alt.amazon.women.admirers ...), LGBT Foren mit noch echten Sexualllen Techniken, politische Inkorrektheit (linux fortune = später message of the day) im Internet durchaus noch präsent, ebenso wie sehr politisch linksgerichtete und auch sehr republikanische Foren), so war der letzte Zeitgeist im standardisieren Mainstream auf eine kalte Art korrekt, ohne Penis, ohne Schusswaffen, ohne Systemkritik, ohne Protest und ohne schwarzem Humor. LGBT dürfen nur noch farbenfrohe Street Paraden veranstalten und müssen jedigliche sexuelle Elemente (LGBT ist im prinzipiell eine reine sexuelle Orientierung) verzichten.

Was ist die Ursache?

1. Scientology, new green left liberal talk.
2. Der Wert niemanden durch Worte, Postings verletzen zu wollen steht über der Meinungsfreiheit.

3. Status eine gewisse Hochsprache lesen und schreiben zu können, die einfache BäuerInnen, ArbeiterInnen, KleiunternehmerInnen und MigrantInnen entweder nicht verstehen oder zumindest nicht sprechen / schreiben können. (Früheres Privileg des Adels).

Einfache Lösungen für sehr komplexe Probleme

1. Persönlichkeitsrechte und das Recht auf Privatsphäre sind grundrechtlich verankert und bei Verstoß oder unbewilligter Freigabe von Inhalte diese Rechte bretreffend, kommt es selten zu einem Streit vor Gericht (besonders bei privaten Einzelpersonen).

2. Alle bestehenden internet medien Formate basieren entweder vollkommener Offenheit, Sichtbarkeit für bestimmte Personen, Unternehmen und Gruppen oder sehr sicheren nur für bestimmte Personen erreichbare gesicherte Kommunikationsräume.
Es gibt derzeit kein Diskussions- oder Internetmedienformat, wo jeder lesen kann, aber nicht sofort jeder kommentieren oder posten kann.
Eine Regel, die es erst lang mitlesenden und bewertenden Teilnehmern erlaubt nach Bewilligung auch schreiben und kommentieren zu dürfen, wäre Vorteilhaft.

2021-10-05

Draft: Idea a multiple device dark net (.onion) cloud

 We've Azure Cloud with microservices, we have amazon cloud, with finest virtualization, but both are companies under patriot act and safe habor agreement. Some months / years ago, there where a lot of tor (dark net) bridges and endpoints in both of those clouds, but if the stock owners decide to prevent TOR in future, you're totally pissed on and you have no legal ability against that.

So lets build a onion scalable cloud, that uses each device with less CPU load and some SSD or similiar fast disk, to build a docker / virtual machine dark net cloud.

2021-09-29

Heinrich Elsigan AGB


 


  1. Umfang der Allgemeinen Geschäftsbedingungen

    1. Die Allgemeinen Geschäftsbedingungen unterliegen der EU-Grundrechte Charta und der Gewerbeordnung.

    2. Jede einzelne Leistungserbringung muss in einem neuen dafür vorgesehen Vertrag vereinbart werden, Ausnahmen gelten hierfür nur für 10 Stammkunden innerhalb der Europäischen Union und des Vereinigten Königreichs (UK).

    3. Weitergabe der Leistungen an dritte oder vervielfältigen der auftragsgefertigten Software des Unternehmens erfordern eine explizite Klausel in einem schriftlichen Vertrag, sofern sie per GPL (Gnu General Public License), Apache License oder einer anderen üblichen Open Software Lizenz lizenziert wurden.

    4. Der Unternehmer bevorzugt per se Open Source und die GPL und öffentliche GIT Source Verwaltung Repositories, einige seiner Kunden haben explizit bei Auftragserteilung auf © (Copy Right) und Closed Source bestanden.

    5. Sollten Bibliotheken. Funktionen, Text- und Bildelemente aus bestehender unter der GPL lizenzierten Software in ein neues Projekt unter einer nicht offenen Lizenz wiederverwendet werden oder aus anderen Projekten einer Open Source lizenzierten Quelle stammen, bleiben diese Komponenten natürlich weiterhin Open Source und müssen vertragsgemäß nach GNU General Public License verwendet und  bei Anfrage darüber Auskunft erteilt werden. Bei einem gerichtlichen Streitfall hat die Open Software Foundation und andere GNU Institutionen hier möglicherweise Rechtsansprüche.


  1. Spezielle Konditionen

    1. Da der Unternehmer seit 2008 an einer schizoaffektiven Störung leidet und dadurch partiell gehandicapt ist, bedarf es einer expliziten Vereinbarung, sollte die Leistungserbringung außerhalb der gewohnten Umgebung oder des Standorts Europa, bzw. Vereinigtes Königreich und beauftragt werden.

    2. Jegliche Ton- und Bildaufnahmen von der Arbeit des Unternehmers erfordern explizite notariell beglaubigte Verträge aufgrund des Handicaps des Unternehmers.

    3. Anwendung oder Installation von Filtern bei der elektronische Kommunikation (TCPIP z.B. http Filter) oder in das OS eingebaute Anzeigefilter, die ohne rechtliche schriftliche Verträge, mit Heinrich Elsigan Einzelunternehmer durch Dritte (Internet Service Provider oder Betriebssystem Hersteller) sind per se nicht erlaubt.

    4. Direkte Überwachung des Bildschirms, jeglicher anderer Ausgabegeräte, sowie der Tastatur, Maus und anderer Eingabegeräte während der Arbeit des Unternehmers durch Auftraggeber. Internationale Organisationen erfordern notariell beglaubigte Verträge






2021-08-22

Maturaschularbeit Deutsch (English completly refactored and updated)

(I wrote the to the same theme 30 years ago my german completion of school work [Abitur] an essay):

It was a lot of generic gossip, where the difference between humanism and existentialism was worked out somewhat, (best intention before acting versus only the result and consequences of thour actions) and from my point of view now, I really didn't understand anything at all, anything about the world, the economy, about the hierarchy of law, about international trade agreements, about mechatronic or IT, buit
But I felt fine and arrogant, because I was so TOP in school in technical science subjects, chemistry, and especially math. [I couldn't model a complex problem with the best mathematical model, no, I didn't even understand linear optimization (simplex) or differential equations.
I'am a left liberal democratic atheist, because of many expierences near or beyond death and a more complex understanding of the abstraction of the mind in correspondence with the brain in our bodies (with heart and lungs) and the spatial and temporal limitation of any existence.
I am a staunch European and a great advocate of the Charter of Human Rights, because nowhere in the world are human rights so respected by law as in Europe
However, I am a little sad that Europe is losing more and more of its economic strength to China, India and the USA, because without a strong modern economy a social fair welfare state isn't possible. Unfortunately, Europe gave up its technically and scientifically innovative lead years ago.
The biggest technical innovations of the Europeans within the last decades were in my opinion GSM (https://en.wikipedia.org/wiki/GSM) and Linux (Linus Torvalds from Finland & Alan Cox from Wales)
Unfortunately there were only a few companies in Europe (SuSE in Germany https://www.suse.com/de-de/) and otherwise linux was mostly only used in the university sector.
In 2010, Torvalds became a United States citizen when getting a job offer from TRANSMETA. In the USA dozens of large corporations use Linux technology, IBM, RedHat, Amazon, Google (Android the most successful further development of Linux for smartphones). https://en.wikipedia.org/wiki/Android_(operating_system)... and many other BIG players in NASDAQ stock exchange.
If we now take a closer look at android smartphone OS (which is essentially based on GSM and Linux), then the software manufacturer Google is based in the USA, the big phone hardware companies like Samsung, Huawei, Google Pixel, Motorola are everywhere around the world, really everywhere except in Europe . Just two European groups Nokia (with a lot of financial capital aid from the giant Microsoft) and Alcatel (with a lot of support from an unspecified Chinese cooperation) have somehow survived in Europe on the technical course of time.
Don't understand me wrong, in Austria are a lot of good companies mostly within the Federation of Industrialists ( https://www.iv.at/.../Federation-of-Austrian-Industries.html )
and they are still up to date due to the permanent further development of existing TOP products and expansion into new markets, but only further development and never the leap from totaly new innovation to international group succeeded. (We are still capable of new innovation even with economic future value and also to hold listed corporations well on the international markets, but Europeans have recently never managed to establish the proove of concept or prototype for an international product within a corporation).
The philosophy of USA and FED with low taxes, expansive monetary policy and stimulating labor markets, designed central bank policy and with enough freely available risk capital is unfortunately also unknown in Europe. (Perhaps a windy innovative inventor and innovator wanted to realize his idea here in a company too, but it failed because of enough free risk capital and legislation was much too regulative).
I'am stil in eternal spiritual love with my first three ex-girlfriends and the person I mostly trust is Bernhard Seiler, because he forgived me and so many people will never forgive me and a did nothing to them and the still hate me.
The male politician I admire the most is the former finance minister and industrialist Hannes Androsch (https://de.wikipedia.org/wiki/Hannes_Androsch), because he's one of the few who argues for an economically strong and social position thanks to his vast know-how.
The female politician I admire the most is Hillary Clinton, because she campaigned for social and women's rights, killed the world's most dangerous terrorist for a long time without risiking American and NATO soldiers lifes somewhere far from home. Most of all, I adore Hillary Clinton because she forgave her husband Billclinton and stood by him and fought for him in the media like a lioness when she was emotionally hurt the most. Her good relationship with her pretty daughter Chelsea Clinton also lasts to this day.
I am now an middle aged more worn man marked by life, who prefers to look to the future positively rather than depressed, especially because for great Love and perspectives for his two sons. (my children).

The most needed reforms were, are and will still be education and pension reforms, because my children already got a bit know more economical and technical education, but the quality of basic public education is still not at the state of the art, where you as parent can be sure, that your kids have a solid natural science base and technical toolbox to not believe the crudest conspiration theories.

2021-07-25

Dysphotic Future with failing Anti-Terror AI

In a dysphotic future, there will exist an AI, who monitors all public, privat and even dark net communication and discussion bords and if the AI detects and emotional HATE-SPEACH or VERY DESTRUCTIVE post, then it automatically creates a news story about a crime (e.g. terrorist attack or assault, slaughter, rape), where the victim is a virtual person baseed an designed on the victim, who was blamed in the discussion board. The perpetrator is portrayed similarly to the person who posted / wrote the hate speech in the discussion forum.

The problem with this is that in this future there are regular articles about terrorist attacks and also a lot of rapes, e.g. if a man with women's problems expresses himself indulgently in a gamer forum.

Originally the purpose was to see emotionally unstable people for the ultimate dire consequence of their actions, but with this deluge of gruesome articles more and more dulled people and overlooked the warning signs of real crime.

[Das Problem dabei ist, dass es regelmäßig in dieser Zukunft, Artikel über Terroranschläge gibt und auch viele Vergewaltigungen, wenn z.B. ein Mann mit Frauenproblemen sich ablassend in einem Gamer Forum äußert.

Ursprünglich war der Zweck, emotional instabilen Menschen die letztmögliche schrecklichste Konsequenz ihres Handeln zu veranschauen, aber durch diese Flut an grausamen Artikeln stumpfen die Menschen immer mehr ab und übersehen die Warnsignale für echte Verbrechen.]

2021-05-01

Frage zum musikalischen Urheberrecht

Angenommen, ich nehme all den Klassikvorrat, der nicht unter das Urheberrecht fällt her (z.B. Kirchentonarten, alle Klassiker vor 1900 der Moderne, wie Bach, Mozart, ...) und nehme die minmal schützbare Tonfolgen als Samples Baukasten.
Was ist die Menge an Musik, die ich mit diesen Samples Baukasten durch Kombinatorik (theorethisch) erzeugen kann?
(Ich meine, welche Musik lässt sich theorethisch mit diesen Samples als Basis etzeugen).
Keine Sorge, es bleibt den neuen Urhebern genügend Material, weil alle Musik, die nicht auf dem klassischen Notensystem oder Pentatonik basiert (wie 5/9 oder 17/33 oder sonstiger Bruch 2er hoher Primzahlen Tonschritte) lässt sich damit sicher nicht abbilden.

Suppose I take all the classical music compositions, that aren't subject of copyright (e.g. church modes, all modern classics before 1900, such as Bach, Mozart, ...) and use the minimum protectable tone sequences as a sample construction kit.

What is the amount of music that I can (theoretically) generate with these sample modules through combinatorics?
(I mean, what amount of music can theoretically be created with these samples as a basis). 

Don't worry, there is enough material left for new composers, that want to produce under copyright, because all music that is not based on the classical notation system or pentatonic scale (such as 5/9 or 17/33 or other fractions of high prime numbers) cannot be reproduced with it.

Supposons que je prenne tout le stock de musique classique qui n'est pas soumis au droit d'auteur (par exemple, les modes d'église, tous les classiques modernes avant 1900, tels que Bach, Mozart, ...) et que j'utilise les séquences de sons minimales pouvant être protégées comme un exemple de kit de construction.
Quelle est la quantité de musique que je peux générer (théoriquement) avec cet exemple de kit de construction utilisant la combinatoire?
(Je veux dire, quelle musique peut théoriquement être créée avec ces échantillons comme base). Ne vous inquiétez pas, il reste assez de matière pour les nouveaux auteurs, car toute musique qui n'est pas basée sur le système de notation classique ou l'échelle pentatonique (comme 5/9 ou 17/33 ou d'autres fractions de nombres premiers élevés) ne peut pas être reproduit avec.

2021-03-31

Semantic web lost in history / herstory around 2010, how to reactivate it & a short contract use case

Current hypes, trends and pushed business models at 2020

Let's take a short look at the current hypes, trends and pushed business models for companies:

  1. IOT (Internet of things), Industry 4.0
    Machines, units, etc. know and probably send their own status at manufacturer, service center, at home or somewhere else over the rainbow (in case of  ugly DNS injection, warped rouing tables [OSPF, BGP] ot men in the middle [squid bump, bluecoat, ...]).
    Those units normally,communicate when they need maintenance, when components soon needs to be replaced, when physical, technical or environmental critical limit reached, when subsystems fail or completley shut down, when the user when the customer operates it improperly or negligently, simply report in intervals that they are alive and everything's OK, , etc

    We can find a lot of use cases for many useful applications here, added value / surplus is often small but still useful! Problems with security, flood of data, extracting relevant events and, above all, reacting to the corresponding message are the challenges here.

  2. Cloud
    I like the cloud, but sometimes cloud feels cloudy, cloudier, obscure dust and smog over keywords and hypes and real hard technical features that generate great customer surplius and real cash or quality of business benefits.

    What are the most common problems, pitfalls and misunderstandigs with any cloud?

    • Lack of specific customer requirements and inaccurate, exact technical specifications from the cloud provider.

      Practical example (what I really need and I'm thinking about right now):
      I need to implement a state service, that saves current game status of small multiplatform games (e.g. card game schnapsenarchon clone, SUPU) in the cloud. If I play on my  android tablet or smartphone, the current state and course of the game will be transfered to a cloud servie, persisted in a cloud storage or database and if I continue playing on Windows desktop, the last state of the game is automatically fetched from the cloud and the game application sets that game state and transferred back to cloud after the next move.

      For my purposes the cheapest way will be sufficient:
      A simple Amazon Linux 2 AMI (HVM), SSD Volume, Type t2.nano, t2.micro or t2.nano with a simple SQL-Database (no matter if hackish install at virtual imaage or the smallest Amazon DB instance) with somekind of open source PHP Swagger API, like https://github.com/andresharpe/quick-api

      With similar requirements, some developers and most managers are probably unsure whether to use Amazon ElasticCache or some kind of Session State Server ported to Azure SQL  or entirely another not well known cloud service.

      Even fewer people (including myself) know what the exact technical limits of the individual services are, e.g. the exact performance and scalable elasticity of Anazon Elastic Cache and when scalability of Amazon Elastic Cache is completely irrelevant, since the network traffic and the network data volume will always be the bottle neck in that specific scenario.

    • Nice advertising slogan, but poor performance and poorly configurable options from drive and storage providers, no standard network mount (like SMB or NFS), but a lot of cloudy magic.
      When I look at the beautiful Google Drive and Microsoft One Drive, I immediately see that this is not a classic network file system mount under my point of understanding.
      Reading and writing large blocks or deep recursively nested directory trees is extremely slow.
      I also didn't find an option to have an incremental version history backup created after every change (Create, Delete, Change) to the Cloud Drive or at least simply midnight-generated backups for the last 3 months at low cost.
      Options like synchronizing parts of the Cloud Drive locally create horror nightmares.
      In 1997 we booted an NFS from the USA via Etherboot with real-time DOS and debugged faster Doom Clones and other 3D games in C ++ with some ASM routines and the network performance didn't fail.

    • Difficulty finding the most suitable service in Cloud Djungel. Real technical comparisons between the hard facts and the possibilities of the individual cloud services have so far mainly published by free bloggers, e.g. AWS Lambda vs Azure Service Fabric
      Decisions are more based on creeds (we have a lot of .NET developers, so we'll use Azure, I mah strong Amazon-like power women and Linux, so I'll use Amazon).



Lets go back to RDF in the years 2010 - 2015 

You probably know what semantic web, owl, rdf, machine readable & understandable data are, right?

If not, then here is a little bit of reading:
https://www.w3.org/TR/rdf-mt/
https://www.w3.org/TR/2010/WD-rdb2rdf-ucr-20100608/
https://en.wikipedia.org/wiki/RDF_Schema

What does 'going back in time' mean in a large scope and broader sense?

Before all the new trends, there was an attempt to realize semantic web, e.g. RDF as an XML extension with semantic machine-understandable properties.

When we as human beeings read a website or analyze BIG data, we automatically recognize the context, perhaps the meaning and probably the significance of this data.

Machines can't do that, they didn't have a semantic understanding until now.

Information theory distinguishes between 3 levels of information:

  1. Syntax level (compiler construction, scanner, parser, automata & formal languages, extended grammar, e.g. https://en.wikipedia.org/wiki/Context-free_grammar
  2. Semantic level (meaningful reading by people, putting things into context, understanding contexts).
  3. Pragmatic level (goal-oriented action based on information by recognizing the meaning at the level of semantics).

I assume / postulate:

=> If computer programs reach 2. semantic level => then we are a big step closer to AI realization.


Why computer programs can't already implement semantic understandig? 

Theoretically and also practically in terms of technical frameworks, computer programs are already able to understand semantically data.

The concrete problem is here, that too little data are provided in a semantically machine-readable form and a standardized (META-)language.

Example: Regardless of whether Statistics Austria, Open Data GV or ECB, etc, certainly provide very good statistics, but none of them provide semantic machine-readable data.

Somebody has to make here a  larger startup, to transform already provided common and needed statistics public data in semantically machine-readable form.


What does that actually bring in return of short time invest?

Not so much immediately!

What could be the fruits in mid-term or in the long tail?

A lot, because when more and more public open data are availible in a semantic machine readable language, programs can also bring some of them in association and we'll be able to implement meta relational AI rules then.

Use case contracts

Semantic programs doesn't only mean mass data fetching and putting them into relation. 
Semantic programming could also in principle support any very formal business process, e.g. contract management for

  • employment contracts
  • supply contracts
  • service provider contracts
  • insurance contracts
  • bank contracts 
  • and all the contracts that people sign with just one click on a checkbox (which they usually do not know that this is a legal contract consent).


All clear and understandable so far?

I got this idea when I was looking and inspecting the adopted amendment to the laws and newly passed laws by the democratic republic of Austria and I wanted some semantic automated statistics for some use cases. 

For details look at post https://www.facebook.com/heinrich.elsigan.9/posts/156458906318533
or read the post copy below:

2021-03-22

Anyone expirience with com.huawei.ridemode for real?


android.manifest looks quiet dangerous

<?xml version="1.0" encoding="utf-8"?>

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.system"
android:versionCode="910014"
android:versionName="9.10.14"
android:compileSdkVersion="28"
android:compileSdkVersionCodename="9"
package="com.huawei.ridemode"
platformBuildVersionCode="28"
platformBuildVersionName="9">

<uses-sdk
android:minSdkVersion="28"
android:targetSdkVersion="28" />

<uses-permission
android:name="com.android.soundrecorder.permission.READ_RECORD" />

<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS" />

<uses-permission
android:name="android.permission.WRITE_SETTINGS" />

<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission
android:name="android.permission.READ_PHONE_STATE" />

<uses-permission
android:name="android.permission.READ_CONTACTS" />

<uses-permission
android:name="android.permission.BLUETOOTH" />

<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN" />

<uses-permission
android:name="android.permission.SEND_SMS" />

<uses-permission
android:name="android.permission.WRITE_SMS" />

<uses-permission
android:name="android.permission.GET_TASKS" />

<uses-permission
android:name="com.android.systemui.permission.removeTask" />

<uses-permission
android:name="android.permission.REAL_GET_TASKS" />

<uses-permission
android:name="com.huawei.ridemode.ACCESS" />

<protected-broadcast
android:name="huawei.intent.action.HWRIDEMODE_SEND_SMS" />

<uses-permission
android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />

<uses-permission
android:name="com.huawei.server.telecom.permission.DTMFANALYZER_RESULT_RECEIVER" />

<uses-permission
android:name="com.huawei.ims.permission.GET_DTMF_TONE_INFO_RIDE_MODE" />

<permission
android:name="com.huawei.dtmfanalyzer.ACCESS"
android:protectionLevel="0x12" />

<application
android:label="@ref/0x7f090003"
android:icon="@ref/0x7f020020"
android:name="com.huawei.ridemode.RideModeApplication"
android:allowBackup="false"
android:supportsRtl="true">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />

<activity
android:label="@ref/0x7f090003"
android:name="com.huawei.ridemode.RideModeActivity"
android:permission="com.huawei.ridemode.ACCESS"
android:taskAffinity="@string/0x1b"
android:excludeFromRecents="true"
android:configChanges="0x4a0">

<intent-filter>

<action
android:name="huawei.intent.action.RIDEMODE_SETTINGS" />

<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

<activity
android:theme="@ref/0x01030010"
android:name="com.huawei.ridemode.RideModeStartActivity"
android:exported="true"
android:taskAffinity="@string/0x1b"
android:excludeFromRecents="true"
android:configChanges="0x4a4">

<intent-filter>

<action
android:name="android.intent.action.MAIN" />

<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:theme="@ref/0x0103006e"
android:name="com.huawei.ridemode.ContactActivity"
android:exported="false"
android:configChanges="0x4a0">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<activity
android:theme="@ref/0x0103006e"
android:label="@ref/0x7f090005"
android:name="com.huawei.ridemode.settings.AutoAnswerVoiceSelectionActivity"
android:exported="false"
android:screenOrientation="1"
android:windowSoftInputMode="0x20"
android:uiOptions="0x1">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<activity
android:theme="@ref/0x0103006e"
android:label="@ref/0x7f090008"
android:name="com.huawei.ridemode.settings.RideModeTextSettings"
android:exported="false"
android:configChanges="0x4a0">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<activity
android:theme="@ref/0x0103006e"
android:label="@ref/0x7f090024"
android:name="com.huawei.ridemode.settings.RideTrackingSettings"
android:exported="false"
android:configChanges="0x4a0">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<activity
android:theme="@ref/0x0103006e"
android:label="@ref/0x7f090006"
android:name="com.huawei.ridemode.settings.AutoMessageSelectionActivity"
android:exported="false"
android:configChanges="0x4a0"
android:uiOptions="0x1">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<activity
android:theme="@ref/0x0103006e"
android:label="@ref/0x7f090027"
android:name="com.huawei.ridemode.RideAnalyticsActivity"
android:exported="false"
android:screenOrientation="1"
android:uiOptions="0x1">

<meta-data
android:name="hwc-theme"
android:value="androidhwext:style/Theme.Emui" />
</activity>

<receiver
android:name="com.huawei.ridemode.RideModeBroadcastReciever"
android:permission="com.huawei.ridemode.ACCESS">

<intent-filter>

<action
android:name="huawei.intent.action.HWRIDEMODE_STOP" />

<action
android:name="huawei.intent.action.HWRIDEMODE_START" />

<action
android:name="huawei.intent.action.HWRIDEMODE_SEND_SMS" />
</intent-filter>
</receiver>

<service
android:name="com.huawei.ridemode.service.RideModeEnableService"
android:exported="false" />

<service
android:name="com.huawei.ridemode.service.RideModeDisableService"
android:exported="false" />

<service
android:name="com.huawei.ridemode.service.RideModeShowDialogService"
android:exported="false" />

<service
android:name="com.huawei.ridemode.service.RideModeIntentService"
android:exported="false" />

<service
android:name="com.huawei.ridemode.service.GPSLocationHelperService"
android:exported="false" />

<service
android:name="com.huawei.ridemode.dtmfanalyzer.DtmfAnalyzerService"
android:permission="com.huawei.dtmfanalyzer.ACCESS"
android:exported="false"
android:singleUser="true" />

<provider
android:name="com.huawei.ridemode.provider.RideModeProvider"
android:exported="false"
android:authorities="com.huawei.ridemode" />
</application>
</manifest>


class SubTabFragmentPagerAdapter.java very funny

.class public Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;
.super Landroid/support/v13/app/FragmentPagerAdapter;
.source "SubTabFragmentPagerAdapter.java"

# interfaces
.implements Lhuawei/android/widget/SubTabWidget$SubTabListener;
.implements Landroid/support/v4/view/ViewPager$OnPageChangeListener;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    }
.end annotation


# instance fields
.field private final mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

.field private final mSubTabs:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;",
            ">;"
        }
    .end annotation
.end field

.field private final mViewPager:Landroid/support/v4/view/ViewPager;


# direct methods
.method public constructor (Landroid/app/Activity;Landroid/support/v4/view/ViewPager;Lhuawei/android/widget/SubTabWidget;)V
    .registers 5
    .param p1, "activity"    # Landroid/app/Activity;
    .param p2, "pager"    # Landroid/support/v4/view/ViewPager;
    .param p3, "subTabWidget"    # Lhuawei/android/widget/SubTabWidget;

    .line 51
    invoke-virtual {p1}, Landroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;

    move-result-object v0

    invoke-direct {p0, v0}, Landroid/support/v13/app/FragmentPagerAdapter;->(Landroid/app/FragmentManager;)V

    .line 28
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;->()V

    iput-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    .line 56
    iput-object p3, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    .line 57
    iput-object p2, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    .line 58
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    invoke-virtual {v0, p0}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V

    .line 59
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    invoke-virtual {v0, p0}, Landroid/support/v4/view/ViewPager;->setOnPageChangeListener(Landroid/support/v4/view/ViewPager$OnPageChangeListener;)V

    .line 60
    return-void
.end method

.method public constructor (Landroid/app/FragmentManager;Landroid/content/Context;Landroid/support/v4/view/ViewPager;Lhuawei/android/widget/SubTabWidget;)V
    .registers 6
    .param p1, "fm"    # Landroid/app/FragmentManager;
    .param p2, "context"    # Landroid/content/Context;
    .param p3, "pager"    # Landroid/support/v4/view/ViewPager;
    .param p4, "subTabWidget"    # Lhuawei/android/widget/SubTabWidget;

    .line 65
    invoke-direct {p0, p1}, Landroid/support/v13/app/FragmentPagerAdapter;->(Landroid/app/FragmentManager;)V

    .line 28
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;->()V

    iput-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    .line 70
    iput-object p4, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    .line 71
    iput-object p3, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    .line 72
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    invoke-virtual {v0, p0}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V

    .line 73
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    invoke-virtual {v0, p0}, Landroid/support/v4/view/ViewPager;->setOnPageChangeListener(Landroid/support/v4/view/ViewPager$OnPageChangeListener;)V

    .line 74
    return-void
.end method

.method private setCurrentItem(Lhuawei/android/widget/SubTabWidget$SubTab;)V
    .registers 5
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 195
    invoke-virtual {p1}, Lhuawei/android/widget/SubTabWidget$SubTab;->getTag()Ljava/lang/Object;

    move-result-object v0

    instance-of v0, v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    if-eqz v0, :cond_2a

    .line 196
    invoke-virtual {p1}, Lhuawei/android/widget/SubTabWidget$SubTab;->getTag()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    .line 197
    .local v0, "tag":Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    const/4 v1, 0x0

    .local v1, "i":I
    :goto_f
    iget-object v2, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->size()I

    move-result v2

    if-ge v1, v2, :cond_2a

    .line 198
    iget-object v2, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v2

    if-ne v2, v0, :cond_27

    .line 200
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 202
    iget-object v2, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mViewPager:Landroid/support/v4/view/ViewPager;

    invoke-virtual {v2, v1}, Landroid/support/v4/view/ViewPager;->setCurrentItem(I)V

    .line 197
    :cond_27
    add-int/lit8 v1, v1, 0x1

    goto :goto_f

    .line 206
    .end local v0    # "tag":Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    .end local v1    # "i":I
    :cond_2a
    return-void
.end method


# virtual methods
.method public addSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;ILandroid/app/Fragment;Landroid/os/Bundle;Z)V
    .registers 8
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;
    .param p2, "position"    # I
    .param p3, "frag"    # Landroid/app/Fragment;
    .param p4, "args"    # Landroid/os/Bundle;
    .param p5, "selected"    # Z

    .line 100
    invoke-virtual {p3}, Landroid/app/Fragment;->isAdded()Z

    move-result v0

    if-nez v0, :cond_f

    invoke-virtual {p3}, Landroid/app/Fragment;->isDetached()Z

    move-result v0

    if-nez v0, :cond_f

    .line 101
    invoke-virtual {p3, p4}, Landroid/app/Fragment;->setArguments(Landroid/os/Bundle;)V

    .line 103
    :cond_f
    new-instance v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    invoke-direct {v0, p3, p4}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->(Landroid/app/Fragment;Landroid/os/Bundle;)V

    .line 104
    .local v0, "info":Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    invoke-virtual {p1, v0}, Lhuawei/android/widget/SubTabWidget$SubTab;->setTag(Ljava/lang/Object;)Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 105
    invoke-virtual {p1}, Lhuawei/android/widget/SubTabWidget$SubTab;->getCallback()Lhuawei/android/widget/SubTabWidget$SubTabListener;

    move-result-object v1

    if-nez v1, :cond_20

    .line 106
    invoke-virtual {p1, p0}, Lhuawei/android/widget/SubTabWidget$SubTab;->setSubTabListener(Lhuawei/android/widget/SubTabWidget$SubTabListener;)Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 109
    :cond_20
    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v1, p2, v0}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V

    .line 111
    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v1, p1, p2, p5}, Lhuawei/android/widget/SubTabWidget;->addSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;IZ)V

    .line 112
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 113
    if-nez p5, :cond_40

    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v1}, Lhuawei/android/widget/SubTabWidget;->getSelectedSubTab()Lhuawei/android/widget/SubTabWidget$SubTab;

    move-result-object v1

    if-eqz v1, :cond_40

    .line 114
    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v1}, Lhuawei/android/widget/SubTabWidget;->getSelectedSubTab()Lhuawei/android/widget/SubTabWidget$SubTab;

    move-result-object v1

    invoke-direct {p0, v1}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->setCurrentItem(Lhuawei/android/widget/SubTabWidget$SubTab;)V

    .line 116
    :cond_40
    return-void
.end method

.method public addSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;Landroid/app/Fragment;Landroid/os/Bundle;Z)V
    .registers 7
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;
    .param p2, "frag"    # Landroid/app/Fragment;
    .param p3, "args"    # Landroid/os/Bundle;
    .param p4, "selected"    # Z

    .line 80
    invoke-virtual {p2}, Landroid/app/Fragment;->isAdded()Z

    move-result v0

    if-nez v0, :cond_f

    invoke-virtual {p2}, Landroid/app/Fragment;->isDetached()Z

    move-result v0

    if-nez v0, :cond_f

    .line 81
    invoke-virtual {p2, p3}, Landroid/app/Fragment;->setArguments(Landroid/os/Bundle;)V

    .line 84
    :cond_f
    new-instance v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    invoke-direct {v0, p2, p3}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->(Landroid/app/Fragment;Landroid/os/Bundle;)V

    .line 85
    .local v0, "info":Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    invoke-virtual {p1, v0}, Lhuawei/android/widget/SubTabWidget$SubTab;->setTag(Ljava/lang/Object;)Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 87
    invoke-virtual {p1}, Lhuawei/android/widget/SubTabWidget$SubTab;->getCallback()Lhuawei/android/widget/SubTabWidget$SubTabListener;

    move-result-object v1

    if-nez v1, :cond_20

    .line 88
    invoke-virtual {p1, p0}, Lhuawei/android/widget/SubTabWidget$SubTab;->setSubTabListener(Lhuawei/android/widget/SubTabWidget$SubTabListener;)Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 91
    :cond_20
    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 92
    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v1, p1, p4}, Lhuawei/android/widget/SubTabWidget;->addSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;Z)V

    .line 93
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 94
    return-void
.end method

.method public getCount()I
    .registers 2

    .line 152
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->size()I

    move-result v0

    return v0
.end method

.method public getItem(I)Landroid/app/Fragment;
    .registers 3
    .param p1, "position"    # I

    .line 139
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    invoke-static {v0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->access$000(Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;)Landroid/app/Fragment;

    move-result-object v0

    return-object v0
.end method

.method public onPageScrollStateChanged(I)V
    .registers 2
    .param p1, "state"    # I

    .line 160
    return-void
.end method

.method public onPageScrolled(IFI)V
    .registers 5
    .param p1, "position"    # I
    .param p2, "positionOffset"    # F
    .param p3, "positionOffsetPixels"    # I

    .line 166
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v0, p1, p2}, Lhuawei/android/widget/SubTabWidget;->setSubTabScrollingOffsets(IF)V

    .line 167
    return-void
.end method

.method public onPageSelected(I)V
    .registers 3
    .param p1, "position"    # I

    .line 172
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v0, p1}, Lhuawei/android/widget/SubTabWidget;->setSubTabSelected(I)V

    .line 173
    return-void
.end method

.method public onSubTabReselected(Lhuawei/android/widget/SubTabWidget$SubTab;Landroid/app/FragmentTransaction;)V
    .registers 3
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;
    .param p2, "ft"    # Landroid/app/FragmentTransaction;

    .line 180
    return-void
.end method

.method public onSubTabSelected(Lhuawei/android/widget/SubTabWidget$SubTab;Landroid/app/FragmentTransaction;)V
    .registers 3
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;
    .param p2, "ft"    # Landroid/app/FragmentTransaction;

    .line 185
    invoke-direct {p0, p1}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->setCurrentItem(Lhuawei/android/widget/SubTabWidget$SubTab;)V

    .line 186
    return-void
.end method

.method public onSubTabUnselected(Lhuawei/android/widget/SubTabWidget$SubTab;Landroid/app/FragmentTransaction;)V
    .registers 3
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;
    .param p2, "ft"    # Landroid/app/FragmentTransaction;

    .line 192
    return-void
.end method

.method public removeAllSubTabs()V
    .registers 2

    .line 130
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V

    .line 131
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v0}, Lhuawei/android/widget/SubTabWidget;->removeAllSubTabs()V

    .line 132
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 133
    return-void
.end method

.method public removeSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;)V
    .registers 3
    .param p1, "subTab"    # Lhuawei/android/widget/SubTabWidget$SubTab;

    .line 120
    invoke-virtual {p1}, Lhuawei/android/widget/SubTabWidget$SubTab;->getPosition()I

    move-result v0

    invoke-virtual {p0, v0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->removeSubTabAt(I)V

    .line 121
    return-void
.end method

.method public removeSubTabAt(I)V
    .registers 4
    .param p1, "position"    # I

    .line 124
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;

    .line 125
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    iget-object v1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabWidget:Lhuawei/android/widget/SubTabWidget;

    invoke-virtual {v1, p1}, Lhuawei/android/widget/SubTabWidget;->getSubTabAt(I)Lhuawei/android/widget/SubTabWidget$SubTab;

    move-result-object v1

    invoke-virtual {v0, v1}, Lhuawei/android/widget/SubTabWidget;->removeSubTab(Lhuawei/android/widget/SubTabWidget$SubTab;)V

    .line 126
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 127
    return-void
.end method

.method public setItem(Landroid/app/Fragment;I)V
    .registers 4
    .param p1, "fm"    # Landroid/app/Fragment;
    .param p2, "position"    # I

    .line 144
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->mSubTabs:Ljava/util/ArrayList;

    invoke-virtual {v0, p2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    .line 145
    .local v0, "info":Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
    invoke-virtual {v0, p1}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->setFragmentItem(Landroid/app/Fragment;)V

    .line 146
    invoke-virtual {p0}, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;->notifyDataSetChanged()V

    .line 147
    return-void
.end method

.class final Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;
.super Ljava/lang/Object;
.source "SubTabFragmentPagerAdapter.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lhuawei/support/v13/app/SubTabFragmentPagerAdapter;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x18
    name = "SubTabInfo"
.end annotation


# instance fields
.field private final args:Landroid/os/Bundle;

.field private fragment:Landroid/app/Fragment;


# direct methods
.method constructor (Landroid/app/Fragment;Landroid/os/Bundle;)V
    .registers 3
    .param p1, "_fragment"    # Landroid/app/Fragment;
    .param p2, "_args"    # Landroid/os/Bundle;

    .line 34
    invoke-direct {p0}, Ljava/lang/Object;->()V

    .line 35
    iput-object p1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->fragment:Landroid/app/Fragment;

    .line 36
    iput-object p2, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->args:Landroid/os/Bundle;

    .line 37
    return-void
.end method

.method static synthetic access$000(Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;)Landroid/app/Fragment;
    .registers 2
    .param p0, "x0"    # Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;

    .line 30
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->fragment:Landroid/app/Fragment;

    return-object v0
.end method


# virtual methods
.method public getArgs()Landroid/os/Bundle;
    .registers 2

    .line 45
    iget-object v0, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->args:Landroid/os/Bundle;

    return-object v0
.end method

.method public setFragmentItem(Landroid/app/Fragment;)V
    .registers 2
    .param p1, "fm"    # Landroid/app/Fragment;

    .line 40
    iput-object p1, p0, Lhuawei/support/v13/app/SubTabFragmentPagerAdapter$SubTabInfo;->fragment:Landroid/app/Fragment;

    .line 41
    return-void
.end method



Emojies in res are even more funny




all calls and usages in classes.dex LOLs em all