Home / Android-Entwicklung / Das Android Arsenal – Changelog

Das Android Arsenal – Changelog

NoticeBoard

NoticeBoard ist eine Changelog-Bibliothek für Android API 21+. Es hilft Entwicklern dabei, den Verlauf von Änderungen in ihren Anwendungen anzuzeigen.

Es zeigt eine Liste von Release oder UnRelease die eine Liste von Change enthält.

] Es erhält eine Quelle für Änderungen und Konfigurationen.

In diesem Repository finden Sie einen Beispielcode für NoticeBoard.

NoticeBoardSample App ist jetzt auf Google Play verfügbar.

19659210] Screenshot

AKTIVITÄT DIALOG

Herunterladen





 Abhängigkeiten {
    Implementierung "net.furkanakdemir: noticeboard: 1.1.0"
}

Verwendung

Mit der Funktion pin wird eine Änderungsprotokollliste angezeigt. Es erhält ein Lambda, mit dem Clients ihre Pinnwände konfigurieren können.

Die Standardeinstellungen lauten wie folgt: TITLE: NoticeBoard DISPLAY_IN: Aktivität SOURCE_TYPE: Dynamisch mit leerer Liste

 NoticeBoard ( this ) . 
 pin {
     //  configs 

    Titel ( ... 
)
    displayIn ( ... 
)
    colorProvider ( ... 
)
    Quelle ( ... 
)
} 

Dies kann Fragment oder

Aktivität sein.

Titel

Der Titel einer Pinnwand kann durch Titel Funktion festgelegt werden.

 Schwarzes Brett ( this ) . 
 pin {
    title ( " Versionshinweise " 
)
} 

Tag

Das Tag einer Pinnwand kann mit der Funktion Tag festgelegt werden. Es kann verwendet werden, um die Anzahl der Anzeigetafeln nach einer Aktualisierung zurückzusetzen.

 NoticeBoard ( this ) 

 pin {
    tag (versionCode)
} 

Anzeigeoptionen

NoticeBoard kann auf zwei Arten angezeigt werden.

Anzeigeoptionen
ACTIVITY
DIALOG
 NoticeBoard ( this ) . 
 pin {
    displayIn ( ACTIVITY 
)
} 

Anzeigeregeln

Die Anzeigeregel einer Pinnwand kann mit der Funktion showRule festgelegt werden.

Anzeigeregeln
Einmalig
Immer
Begrenzt
 Schwarzes Brett (  this ) . 
 pin {
    showRule ( Einmal 
)
    showRule ( Immer 
)
    showRule (Limited ( 3 
))
} 

Farbanbieter

Ein Farbanbieter kann übergeben werden, um die Hintergründe für den Änderungstyp bereitzustellen.

Überschreiben Sie die Standardfarbanbieterklasse

 CustomColorProvider  ( privat 
 val context: Context): NoticeBoardColorProvider (context) {
    überschreiben var colorAdded :  Int  =  R .  color . 
 colorAccent
    Überschreiben von var colorChanged :  Int  =  R .  color . 
 colorAccent
    Überschreiben von var colorDeprecated :  Int  =  R .  color . 
 colorPrimary
    überschreiben var colorRemoved :  Int  =  R .  color . 
 colorPrimary
    überschreiben var colorFixed :  Int  =  R .  color . 
 colorPrimaryDark
    Überschreiben von var colorSecurity :  Int  =  R .  color . 
 colorPrimaryDark
    Überschreiben Sie var colorDescriptionText  =  R .  color . 
 colorDescriptionCustom
    Überschreiben von var colorBackground :  Int  =  R .  color . 
 colorBackgroundCustom
    Überschreiben Sie var colorTitleDialog :  Int  =  R .  color . 
 colorTitleCustom
    Überschreiben von var colorTitleActivity :  Int  =  R .  color . 
 colorTitleCustom
} 

Oder implementieren ColorProvider Schnittstelle

 Klasse  CustomColorProvider 
: ColorProvider {
    Spaß überschreiben  getChangeTypeBackgroundColor  ( changeType :  ChangeType 



): Int {

    }

    Spaß überschreiben  getBackgroundColor 



 (): Int {

    }

    Spaß überschreiben  getDescriptionColor 



 (): Int {

    }

    Spaß überschreiben  getTitleColor  ( displayOptions :  DisplayOptions 



): Int {

    }
}

Schließlich kann ein benutzerdefinierter Farbanbieter durch die Funktion colorProvider festgelegt werden.

 val customColorProvider  =  CustomColorProvider ( this 

)

Schwarzes Brett ( this ) . 


 pin {
    colorProvider (customColorProvider)
}

Nicht freigegebener Abschnitt

Ein nicht freigegebener Abschnitt kann zu einer Pinnwand hinzugefügt werden.

UnRelease kann dynamisch erstellt werden.

oder

Freigegebenes Feld kann festgelegt werden in JSON- oder XML-Datei auf false setzen. (Standard: true)

Die Position des nicht freigegebenen Abschnitts kann konfiguriert werden. (Standard: TOP)

Wenn TOP oder BOTTOM ausgewählt ist, werden alle nicht freigegebenen Elemente in einer Liste zusammengeführt. Wenn NONE ausgewählt ist, bleiben die Elemente unverändert.

 NoticeBoard ( this ) 
 pin {
    unreleasedPosition ( UNTEN 

)
}

Änderungstypen

Derzeit sind 6 Änderungstypen integriert.

Änderungstyp Enum
ADDED 0
CHANGED 1
DEPRECATED 2
ENTFERNT 3
BEHOBEN 4
SICHERHEIT 5

Quellentypen

Derzeit gibt es 3 Datenquellentypen.

Dynamisch

Versionen speichern durch dynamisches Erstellen von

 Wertänderungen  = 
 listOf (
            Veröffentlichung ( 30. September 2019  1.0.0 

,
                Liste von(
                    Change ( " Neue Anmeldeseite "  ADDED 
),
                    Ändern ( " Symbolleiste in Kasse "  GEÄNDERT 
),
                    Change ( " Altes Thema wird entfernt "  DEPRECATED 
),
                    Änderung ( " Tutorial-Seite wurde entfernt "  ENTFERNT 
),
                    Änderung ( " Absturz bei Zahlung "  BEHOBEN 
),
                    Änderung ( " Nur HTTPS-Anforderungen "  SICHERHEIT 




)
                )
            )
        )

Schwarzes Brett ( this ) . 

 pin {
    Quelle (Dynamisch (Änderungen))
} 

Json

Speichern Sie Veröffentlichungen, indem Sie eine Json-Datei im Ordner / assets erstellen.

Hier ein Beispiel für eine JSON-Datei


 [
  {
     Datum :  30. September 2019 
,
     Version :  1.0.0 
,
     " veröffentlicht " :  true 
,
     " Änderungen " 

: [
      {
         Typ :  0 
,
         " Beschreibung " :  " Neue Anmeldeseite " 



      },
      {
         Typ :  1 
,
         " Beschreibung " :  " Toolbar in Checkout " 



      },
      {
         Typ :  2 
,
         " Beschreibung " :  " Altes Thema wird entfernt " 



      },
      {
         Typ :  3 
,
         " Beschreibung " :  " Tutorial-Seite wurde entfernt " 



      },
      {
         Typ :  4 
,
         " Beschreibung " :  " Absturz bei Zahlung " 



      },
      {
         Typ :  5 
,
         " Beschreibung " :  " Nur HTTPS-Anforderungen " 




      }
    ]
  }
] 
 val filepath  =  " sample.json " 



Schwarzes Brett ( this ) . 

 pin {
    source (Json (Dateipfad))
} 

XML

Speichern Sie Veröffentlichungen, indem Sie eine XML-Datei im Ordner / assets erstellen.

Hier ein Beispiel für eine XML-Datei

 <?  xml  =  1,0  Codierung  =  UTF-8 
?>
< Veröffentlichungen 
>
    < Veröffentlichung 
>
        < Datum > 30. September 2019 </  Datum 
>
        < Version > 1.0.0 </  Version 
>
        < veröffentlicht > wahr </  veröffentlicht 
>
        < change 
>
            < Beschreibung > Neue Anmeldeseite </  Beschreibung 
>
            < Typ > 0 </  Typ 
>
        </  change 
>
        < change 
>
            < description > Symbolleiste in Checkout </  description 
>
            < Typ > 1 </  Typ 
>
        </  change 
>
        < change 
>
            < Beschreibung > Altes Thema wird entfernt </  Beschreibung 
>
            < Typ > 2 </  Typ 
>
        </  change 
>
        < change 
>
            < Beschreibung > Tutorial-Seite wurde entfernt </  Beschreibung 
>
            < Typ > 3 </  Typ 
>
        </  change 
>
        < change 
>
            < description > Absturz bei Zahlung </  description 
>
            < Typ > 4 </  Typ 
>
        </  change 
>
        < change 
>
            < Beschreibung > HTTPS fordert nur </  Beschreibung 
> an
            < Typ > 5 </  Typ 
>
        </  change 
>
    </  release 
>
</  gibt 
 frei>
 val filepath  =  " sample.xml " 



Schwarzes Brett ( this ) . 

 pin {
    source (XML (Dateipfad))
} 

Bevorstehende

  1. Hinzufügen Bekannte Probleme Abschnittsunterstützung
  2. Hinzufügen benutzerdefinierter Änderungstypen
  3. Hinzufügen MarkdownDataSource Unterstützung
  4. Hinzufügen von Remote-Datenunterstützung
  5. a GOTO-Schaltfläche
  6. Neue Datumsformate

Beitrag

Wenn Sie in der Bibliothek oder im Beispiel einen Fehler gefunden haben, reichen Sie bitte ein Problem ein.

Patches werden empfohlen und können eingereicht werden, indem Sie dieses Projekt und forken Senden einer Pull-Anfrage.

Wenn Sie zu noticeboard beigetragen haben, Ihr Name jedoch nicht in der Liste enthalten ist, können Sie sich gerne dazu hinzufügen!

Lizenz














 Copyright 2019 Furkan Akdemir

Lizenziert unter der Apache-Lizenz, Version 2.0 (die "Lizenz");
Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden.
Eine Kopie der Lizenz erhalten Sie unter

   http://www.apache.org/licenses/LICENSE-2.0

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, Software
unter der Lizenz vertrieben wird auf einer "AS IS" -Basis verteilt,
OHNE GARANTIEN ODER BEDINGUNGEN JEGLICHER Art, entweder ausdrücklich oder stillschweigend.
In der Lizenz finden Sie die spezifische Sprache für die Berechtigungen und
Einschränkungen unter der Lizenz.

.

About AndroidWeltEditor

Check Also

Wie Android-Entwickler Benutzer auf jedem Gerät erreichen können

Gepostet von Allan Livingston, Produktmanagementdirektor, Chrome OS App Ecosystem Android unterstützt mobile Apps auf Geräten, …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.