(I wrote the to the same theme 30 years ago my german completion of school work [Abitur] an essay):
blog.darkstar.work - a simple url encoder/decoder
Labels
2021-08-22
Maturaschularbeit Deutsch (English completly refactored and updated)
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
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.
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:
- 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. - 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 schnapsen, archon 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).
- Lack of specific customer requirements and inaccurate, exact technical specifications from the cloud provider.
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:
- Syntax level (compiler construction, scanner, parser, automata & formal languages, extended grammar, e.g. https://en.wikipedia.org/wiki/Context-free_grammar)
- Semantic level (meaningful reading by people, putting things into context, understanding contexts).
- 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.
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
- 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