Skip to content

Commit

Permalink
Migrated sample to Kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
AviranAbady committed Sep 10, 2020
1 parent cb27098 commit 2f22321
Show file tree
Hide file tree
Showing 14 changed files with 443 additions and 121 deletions.
50 changes: 35 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,49 +39,69 @@ CookieBar.build(activity) // Provide activity, using this@MainActivity
```
### Using Java
```java
CookieBar.build(MainActivity.this)
CookieBar.build(getactivty())
.setTitle("TITLE")
.setMessage("MESSAGE")
.setCookiePosition(CookieBar.BOTTOM) // Cookie will be displayed at the bottom
.show(); // of the screen
```

## Customize colors, icon, icon animation, call to action button, display duration
```java
CookieBar.build(MainActivity.this)
```kotlin
CookieBar.build(activity)
.setTitle(R.string.title)
.setTitleColor(R.color.green)
.setIcon(R.drawable.icon)
.setIconAnimation(R.animator.spin)
.setMessage(R.string.message)
.setAction(R.string.action_text, new OnActionClickListener() {
@Override
public void onClick() {
// Do something
}
})
.setAction(R.string.action_text) {
// Action code - Do something
}
.setDuration(5000) // 5 seconds
.show();
.show()
```

## Customize in/out animation
```java
CookieBar.build(MainActivity.this)
```kotlin
CookieBar.build(activity)
.setTitle(R.string.title)
.setMessage(R.string.message)
.setAnimationIn(android.R.anim.slide_in_left, android.R.anim.slide_in_left)
.setAnimationOut(android.R.anim.slide_out_right, android.R.anim.slide_out_right)
.show();
.show()
```

## Programmatically dismiss cookies currently being displayed
```java
CookieBar.dismiss(MainActivity.this);
```kotlin
CookieBar.dismiss(activity)

```


## Create a cookie with a custom layout - Create a dialog!
```kotlin
CookieBar.build(activity)
.setCustomView(R.layout.custom_cookie)
.setCustomViewInitializer { view ->
val btnNew = view.findViewById<Button>(R.id.custom_cookie_btn_new)
val btnOpen = view.findViewById<Button>(R.id.custom_cookie_btn_open)
val btnSave = view.findViewById<Button>(R.id.custom_cookie_btn_save)
val btnListener = View.OnClickListener { view ->
val button = view as Button
button.setText(R.string.clicked)
}
btnNew.setOnClickListener(btnListener)
btnOpen.setOnClickListener(btnListener)
btnSave.setOnClickListener(btnListener)
}
.setAction("Close") { CookieBar.dismiss(activity) }
.setTitle(R.string.custom_view_cookie_title)
.setMessage(R.string.custom_view_cookie_message)
.setEnableAutoDismiss(false)
.setSwipeToDismiss(false)
.setCookiePosition(Gravity.BOTTOM)
.show()
```
```java
/* setCustomView - Set the layout resource for your custom cookie view.
setCustomViewInitializer - Called after layout inflation, for subview setup. */
Expand Down
14 changes: 14 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
compileSdkVersion 30
Expand All @@ -17,10 +19,22 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
exclude group: 'com.android.support', module: 'support-annotations'
})
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,55 @@
package org.aviran.cookiebarsample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import org.aviran.cookiebar2.CookieBar;
import org.aviran.cookiebar2.CookieBarDismissListener;
import org.aviran.cookiebar2.OnActionClickListener;

public class MainActivity extends AppCompatActivity {
import java.util.concurrent.TimeoutException;

int topCookieCounter = 0;
public class JavaDemoFragment extends Fragment {

private int topCookieCounter = 0;
private TextView infoTextView;

public JavaDemoFragment() {
// Required empty public constructor
}

@Override
protected void onCreate(Bundle savedInstanceState) {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

Button btnTop = findViewById(R.id.btn_top);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_layout, container, false);
}

@Override
public void onViewCreated(@NonNull View rootView, @Nullable Bundle savedInstanceState) {
super.onViewCreated(rootView, savedInstanceState);
this.infoTextView = rootView.findViewById(R.id.infoTextView);

Button btnTop = rootView.findViewById(R.id.btnTop);
btnTop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CookieBar.build(MainActivity.this)
CookieBar.build(getActivity())
.setTitle(R.string.top_cookie_title)
.setTitleColor(R.color.yellow)
.setMessage(getString(R.string.top_cookie_message, ++topCookieCounter))
Expand Down Expand Up @@ -54,18 +79,18 @@ public void onDismiss(int dismissType) {

}

Toast.makeText(MainActivity.this, desc, Toast.LENGTH_LONG).show();
infoTextView.setText(desc);
}
})
.show();
}
});

final Button btnBottom = findViewById(R.id.btn_bottom);
final Button btnBottom = rootView.findViewById(R.id.btnBottom);
btnBottom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CookieBar.build(MainActivity.this)
CookieBar.build(getActivity())
.setDuration(5000)
.setTitle(R.string.bottom_cookie_title)
.setIcon(R.mipmap.ic_launcher)
Expand All @@ -77,19 +102,19 @@ public void onClick(View view) {
.setAction(R.string.cookie_action, new OnActionClickListener() {
@Override
public void onClick() {
Toast.makeText(getApplicationContext(), "Action Engaged!", Toast.LENGTH_LONG).show();
infoTextView.setText(R.string.action_engaged);
}
})
.show();
}
});


Button btnCustomAnimation = findViewById(R.id.btn_custom_anim);
Button btnCustomAnimation = rootView.findViewById(R.id.btnCustomAnim);
btnCustomAnimation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CookieBar.build(MainActivity.this)
CookieBar.build(getActivity())
.setTitle(R.string.custom_anim_cookie_title)
.setMessage(R.string.custom_anim_cookie_message)
.setIcon(R.drawable.ic_android_white_48dp)
Expand All @@ -103,11 +128,11 @@ public void onClick(View view) {
});


Button btnBottomAnimated = findViewById(R.id.btn_bottom_animated);
Button btnBottomAnimated = rootView.findViewById(R.id.btnBottomAnimated);
btnBottomAnimated.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CookieBar.build(MainActivity.this)
CookieBar.build(getActivity())
.setTitle(R.string.fancy_cookie_title)
.setMessage(R.string.fancy_cookie_message)
.setIcon(R.drawable.ic_settings_white_48dp)
Expand All @@ -121,20 +146,20 @@ public void onClick(View view) {
.setAction("OPEN SETTINGS", new OnActionClickListener() {
@Override
public void onClick() {
Toast.makeText(getApplicationContext(), "Action Engaged!", Toast.LENGTH_LONG).show();
infoTextView.setText(R.string.action_engaged);
}
})
.show();
}
});

Button btnCustomView = findViewById(R.id.btn_custom_view);
Button btnCustomView = rootView.findViewById(R.id.btnCustomView);
btnCustomView.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {

CookieBar.build(MainActivity.this)
CookieBar.build(getActivity())
.setCustomView(R.layout.custom_cookie)
.setCustomViewInitializer(new CookieBar.CustomViewInitializer() {
@Override
Expand All @@ -161,7 +186,7 @@ public void onClick(View view) {
.setAction("Close", new OnActionClickListener() {
@Override
public void onClick() {
CookieBar.dismiss(MainActivity.this);
CookieBar.dismiss(getActivity());
}
})
.setTitle(R.string.custom_view_cookie_title)
Expand All @@ -173,13 +198,11 @@ public void onClick() {
}
});

findViewById(R.id.activity_main).setOnClickListener(new View.OnClickListener() {
rootView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CookieBar.dismiss(MainActivity.this);
CookieBar.dismiss(getActivity());
}
});


}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.aviran.cookiebarsample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import org.aviran.cookiebar2.CookieBar;
import org.aviran.cookiebar2.CookieBarDismissListener;
import org.aviran.cookiebar2.OnActionClickListener;

public class JavaSampleActivity extends AppCompatActivity {

int topCookieCounter = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);




}
}
13 changes: 13 additions & 0 deletions app/src/main/java/org/aviran/cookiebarsample/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.aviran.cookiebarsample

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(findViewById(R.id.toolbar))
}
}
Loading

0 comments on commit 2f22321

Please sign in to comment.