text:
<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">

  <title>unicode</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />

         Home

         Trees

         Indices

         Help

        unicode ::
        Class unicode

[hide private]

[frames] | no frames]

Class unicode

object --+
         |
basestring --+
             |
            unicode

unicode(object='') -> unicode object unicode(string[, encoding[,
  errors]]) -> unicode object

Create a new Unicode object from the given encoded string. encoding
  defaults to the current default string encoding. errors can be 'strict',
  'replace' or 'ignore' and defaults to 'strict'.

        Instance Methods
        [hide private]

          __add__(x,
        y)

      x+y

          __contains__(x,
        y)

      y in x

          __eq__(x,
        y)

      x==y

      unicode

          __format__(S,
        format_spec)

      Return a formatted version of S as described by format_spec.

          __ge__(x,
        y)

      x>=y

          __getattribute__(...)

      x.__getattribute__('name') <==> x.name

          __getitem__(x,
        y)

      x[y]

          __getnewargs__(...)

          __getslice__(x,
        i,
        j)

      x[i:j]

          __gt__(x,
        y)

      x>y

          __hash__(x)

      hash(x)

          __le__(x,
        y)

      x<=y

          __len__(x)

      len(x)

          __lt__(x,
        y)

      x<y

          __mod__(x,
        y)

      x%y

          __mul__(x,
        n)

      x*n

          __ne__(x,
        y)

      x!=y

      a new object with type S, a subtype of T

          __new__(T,
        S,
        ...)

          __repr__(x)

      repr(x)

          __rmod__(x,
        y)

      y%x

          __rmul__(x,
        n)

      n*x

      size of S in memory, in bytes

          __sizeof__(S)

      size of object in memory, in bytes

          __str__(x)

      str(x)

          _formatter_field_name_split(...)

          _formatter_parser(...)

      unicode

          capitalize(S)

      Return a capitalized version of S, i.e.

      unicode

          center(S,
        width,
        fillchar=...)

      Return S centered in a Unicode string of length width.

      int

          count(S,
        sub,
        start=...,
        end=...)

      Return the number of non-overlapping occurrences of substring sub in
      Unicode string S[start:end].

      string or unicode

          decode(S,
        encoding=...,
        errors=...)

      Decodes S using the codec registered for encoding.

      string or unicode

          encode(S,
        encoding=...,
        errors=...)

      Encodes S using the codec registered for encoding.

      bool

          endswith(S,
        suffix,
        start=...,
        end=...)

      Return True if S ends with the specified suffix, False otherwise.

      unicode

          expandtabs(S,
        tabsize=...)

      Return a copy of S where all tab characters are expanded using
      spaces.

      int

          find(S,
        sub,
        start=... ,
        end=...)

      Return the lowest index in S where substring sub is found, such that
      sub is contained within S[start:end].

      unicode

          format(S,
        *args,
        **kwargs)

      Return a formatted version of S, using substitutions from args and
      kwargs.

      int

          index(S,
        sub,
        start=... ,
        end=...)

      Like S.find() but raise ValueError when the substring is not found.

      bool

          isalnum(S)

      Return True if all characters in S are alphanumeric and there is at
      least one character in S, False otherwise.

      bool

          isalpha(S)

      Return True if all characters in S are alphabetic and there is at
      least one character in S, False otherwise.

      bool

          isdecimal(S)

      Return True if there are only decimal characters in S, False
      otherwise.

      bool

          isdigit(S)

      Return True if all characters in S are digits and there is at least
      one character in S, False otherwise.

      bool

          islower(S)

      Return True if all cased characters in S are lowercase and there is
      at least one cased character in S, False otherwise.

      bool

          isnumeric(S)

      Return True if there are only numeric characters in S, False
      otherwise.

      bool

          isspace(S)

      Return True if all characters in S are whitespace and there is at
      least one character in S, False otherwise.

      bool

          istitle(S)

      Return True if S is a titlecased string and there is at least one
      character in S, i.e.

      bool

          isupper(S)

      Return True if all cased characters in S are uppercase and there is
      at least one cased character in S, False otherwise.

      unicode

          join(S,
        iterable)

      Return a string which is the concatenation of the strings in the
      iterable.

      int

          ljust(S,
        width,
        fillchar=...)

      Return S left-justified in a Unicode string of length width.

      unicode

          lower(S)

      Return a copy of the string S converted to lowercase.

      unicode

          lstrip(S,
        chars=...)

      Return a copy of the string S with leading whitespace removed.

      (head, sep, tail)

          partition(S,
        sep)

      Search for the separator sep in S, and return the part before it, the
      separator itself, and the part after it.

      unicode

          replace(S,
        old,
        new,
        count=...)

      Return a copy of S with all occurrences of substring old replaced by
      new.

      int

          rfind(S,
        sub,
        start=... ,
        end=...)

      Return the highest index in S where substring sub is found, such that
      sub is contained within S[start:end].

      int

          rindex(S,
        sub,
        start=... ,
        end=...)

      Like S.rfind() but raise ValueError when the substring is not found.

      unicode

          rjust(S,
        width,
        fillchar=...)

      Return S right-justified in a Unicode string of length width.

      (head, sep, tail)

          rpartition(S,
        sep)

      Search for the separator sep in S, starting at the end of S, and
      return the part before it, the separator itself, and the part after
      it.

      list of strings

          rsplit(S,
        sep=... ,
        maxsplit=...)

      Return a list of the words in S, using sep as the delimiter string,
      starting at the end of the string and working to the front.

      unicode

          rstrip(S,
        chars=...)

      Return a copy of the string S with trailing whitespace removed.

      list of strings

          split(S,
        sep=... ,
        maxsplit=...)

      Return a list of the words in S, using sep as the delimiter string.

      list of strings

          splitlines(S,
        keepends=False)

      Return a list of the lines in S, breaking at line boundaries.

      bool

          startswith(S,
        prefix,
        start=...,
        end=...)

      Return True if S starts with the specified prefix, False otherwise.

      unicode

          strip(S,
        chars=...)

      Return a copy of the string S with leading and trailing whitespace
      removed.

      unicode

          swapcase(S)

      Return a copy of S with uppercase characters converted to lowercase
      and vice versa.

      unicode

          title(S)

      Return a titlecased version of S, i.e.

      unicode

          translate(S,
        table)

      Return a copy of the string S, where all characters have been mapped
      through the given translation table, which must be a mapping of
      Unicode ordinals to Unicode ordinals, Unicode strings or None.

      unicode

          upper(S)

      Return a copy of S converted to uppercase.

      unicode

          zfill(S,
        width)

      Pad a numeric string S with zeros on the left, to fill a field of the
      specified width.

Inherited from object:
      __delattr__,
      __init__,
      __reduce__,
      __reduce_ex__,
      __setattr__,
      __subclasshook__

        Properties
        [hide private]

Inherited from object:
      __class__

        Method Details
        [hide private]

__format__(S,
        format_spec)

Return a formatted version of S as described by format_spec.

Returns: unicode

Overrides:
        object.__format__

__getattribute__(...)

x.__getattribute__('name') <==> x.name

Overrides:
        object.__getattribute__

__getslice__(x,
        i,
        j)

(Slicling operator)

x[i:j]

Use of negative indices is not supported.

__hash__(x)

(Hashing function)

hash(x)

Overrides:
        object.__hash__

__new__(T,
        S,
        ...)

Returns: a new object with type S, a subtype of T

Overrides:
        object.__new__

__repr__(x)

(Representation operator)

repr(x)

Overrides:
        object.__repr__

__sizeof__(S)

size of object in memory, in bytes

Returns: size of S in memory, in bytes

Overrides:
        object.__sizeof__

__str__(x)

(Informal representation operator)

str(x)

Overrides:
        object.__str__

capitalize(S)

Return a capitalized version of S, i.e. make the first character have
  upper case and the rest lower case.

Returns: unicode

center(S,
        width,
        fillchar=...)

Return S centered in a Unicode string of length width. Padding is done
  using the specified fill character (default is a space)

Returns: unicode

count(S,
        sub,
        start=...,
        end=...)

Return the number of non-overlapping occurrences of substring sub in
  Unicode string S[start:end].  Optional arguments start and end are
  interpreted as in slice notation.

Returns: int

decode(S,
        encoding=...,
        errors=...)

Decodes S using the codec registered for encoding. encoding defaults
  to the default encoding. errors may be given to set a different error
  handling scheme. Default is 'strict' meaning that encoding errors raise a
  UnicodeDecodeError. Other possible values are 'ignore' and 'replace' as
  well as any other name registered with codecs.register_error that is able
  to handle UnicodeDecodeErrors.

Returns: string or unicode

encode(S,
        encoding=...,
        errors=...)

Encodes S using the codec registered for encoding. encoding defaults
  to the default encoding. errors may be given to set a different error
  handling scheme. Default is 'strict' meaning that encoding errors raise a
  UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
  'xmlcharrefreplace' as well as any other name registered with
  codecs.register_error that can handle UnicodeEncodeErrors.

Returns: string or unicode

endswith(S,
        suffix,
        start=...,
        end=...)

Return True if S ends with the specified suffix, False otherwise. With
  optional start, test S beginning at that position. With optional end,
  stop comparing S at that position. suffix can also be a tuple of strings
  to try.

Returns: bool

expandtabs(S,
        tabsize=...)

Return a copy of S where all tab characters are expanded using spaces.
  If tabsize is not given, a tab size of 8 characters is assumed.

Returns: unicode

find(S,
        sub,
        start=... ,
        end=...)

Return the lowest index in S where substring sub is found, such that
  sub is contained within S[start:end].  Optional arguments start and end
  are interpreted as in slice notation.

Return -1 on failure.

Returns: int

format(S,
        *args,
        **kwargs)

Return a formatted version of S, using substitutions from args and
  kwargs. The substitutions are identified by braces ('{' and '}').

Returns: unicode

istitle(S)

Return True if S is a titlecased string and there is at least one
  character in S, i.e. upper- and titlecase characters may only follow
  uncased characters and lowercase characters only cased ones. Return False
  otherwise.

Returns: bool

join(S,
        iterable)

Return a string which is the concatenation of the strings in the
  iterable.  The separator between elements is S.

Returns: unicode

ljust(S,
        width,
        fillchar=...)

Return S left-justified in a Unicode string of length width. Padding
  is done using the specified fill character (default is a space).

Returns: int

lstrip(S,
        chars=...)

Return a copy of the string S with leading whitespace removed. If
  chars is given and not None, remove characters in chars instead. If chars
  is a str, it will be converted to unicode before stripping

Returns: unicode

partition(S,
        sep)

Search for the separator sep in S, and return the part before it, the
  separator itself, and the part after it.  If the separator is not found,
  return S and two empty strings.

Returns: (head, sep, tail)

replace(S,
        old,
        new,
        count=...)

Return a copy of S with all occurrences of substring old replaced by
  new.  If the optional argument count is given, only the first count
  occurrences are replaced.

Returns: unicode

rfind(S,
        sub,
        start=... ,
        end=...)

Return the highest index in S where substring sub is found, such that
  sub is contained within S[start:end].  Optional arguments start and end
  are interpreted as in slice notation.

Return -1 on failure.

Returns: int

rjust(S,
        width,
        fillchar=...)

Return S right-justified in a Unicode string of length width. Padding
  is done using the specified fill character (default is a space).

Returns: unicode

rpartition(S,
        sep)

Search for the separator sep in S, starting at the end of S, and
  return the part before it, the separator itself, and the part after it.
  If the separator is not found, return two empty strings and S.

Returns: (head, sep, tail)

rsplit(S,
        sep=... ,
        maxsplit=...)

Return a list of the words in S, using sep as the delimiter string,
  starting at the end of the string and working to the front.  If maxsplit
  is given, at most maxsplit splits are done. If sep is not specified, any
  whitespace string is a separator.

Returns: list of strings

rstrip(S,
        chars=...)

Return a copy of the string S with trailing whitespace removed. If
  chars is given and not None, remove characters in chars instead. If chars
  is a str, it will be converted to unicode before stripping

Returns: unicode

split(S,
        sep=... ,
        maxsplit=...)

Return a list of the words in S, using sep as the delimiter string.
  If maxsplit is given, at most maxsplit splits are done. If sep is not
  specified or is None, any whitespace string is a separator and empty
  strings are removed from the result.

Returns: list of strings

splitlines(S,
        keepends=False)

Return a list of the lines in S, breaking at line boundaries. Line
  breaks are not included in the resulting list unless keepends is given
  and true.

Returns: list of strings

startswith(S,
        prefix,
        start=...,
        end=...)

Return True if S starts with the specified prefix, False otherwise.
  With optional start, test S beginning at that position. With optional
  end, stop comparing S at that position. prefix can also be a tuple of
  strings to try.

Returns: bool

strip(S,
        chars=...)

Return a copy of the string S with leading and trailing whitespace
  removed. If chars is given and not None, remove characters in chars
  instead. If chars is a str, it will be converted to unicode before
  stripping

Returns: unicode

title(S)

Return a titlecased version of S, i.e. words start with title case
  characters, all remaining cased characters have lower case.

Returns: unicode

translate(S,
        table)

Return a copy of the string S, where all characters have been mapped
  through the given translation table, which must be a mapping of Unicode
  ordinals to Unicode ordinals, Unicode strings or None. Unmapped
  characters are left untouched. Characters mapped to None are deleted.

Returns: unicode

zfill(S,
        width)

Pad a numeric string S with zeros on the left, to fill a field of the
  specified width. The string S is never truncated.

Returns: unicode

         Home

         Trees

         Indices

         Help

    Generated by Epydoc 3.0.1 on Wed Apr 16 11:40:43 2014

      http://epydoc.sourceforge.net


text:
package docker

import (
	"context"
	"fmt"
)

func init() {
	registerManifester(useDocker, dockerManifester{})

	registerImager(useDocker, dockerImager{})
	registerImager(useBuildx, dockerImager{
		buildx: true,
	})
}

type dockerManifester struct{}

func (m dockerManifester) Create(ctx context.Context, manifest string, images, flags []string) error {
	_ = runCommand(ctx, ".", "docker", "manifest", "rm", manifest)

	args := []string{"manifest", "create", manifest}
	args = append(args, images...)
	args = append(args, flags...)

	if err := runCommand(ctx, ".", "docker", args...); err != nil {
		return fmt.Errorf("failed to create %s: %w", manifest, err)
	}
	return nil
}

func (m dockerManifester) Push(ctx context.Context, manifest string, flags []string) error {
	args := []string{"manifest", "push", manifest}
	args = append(args, flags...)
	if err := runCommand(ctx, ".", "docker", args...); err != nil {
		return fmt.Errorf("failed to push %s: %w", manifest, err)
	}
	return nil
}

type dockerImager struct {
	buildx bool
}

func (i dockerImager) Push(ctx context.Context, image string, flags []string) error {
	if err := runCommand(ctx, ".", "docker", "push", image); err != nil {
		return fmt.Errorf("failed to push %s: %w", image, err)
	}
	return nil
}

func (i dockerImager) Build(ctx context.Context, root string, images, flags []string) error {
	if err := runCommand(ctx, root, "docker", i.buildCommand(images, flags)...); err != nil {
		return fmt.Errorf("failed to build %s: %w", images[0], err)
	}
	return nil
}

func (i dockerImager) buildCommand(images, flags []string) []string {
	base := []string{"build", "."}
	if i.buildx {
		base = []string{"buildx", "build", ".", "--load"}
	}
	for _, image := range images {
		base = append(base, "-t", image)
	}
	base = append(base, flags...)
	return base
}

redpajama_set_name: RedPajamaGithub


text:
'use strict';

var variadic = require('../helpers/variadic');

module.exports = function except() {
  var _this = this;

  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  var properties = variadic(args);

  if (Array.isArray(this.items)) {
    var _collection = this.items.filter(function (item) {
      return properties.indexOf(item) === -1;
    });

    return new this.constructor(_collection);
  }

  var collection = {};
  Object.keys(this.items).forEach(function (property) {
    if (properties.indexOf(property) === -1) {
      collection[property] = _this.items[property];
    }
  });
  return new this.constructor(collection);
};


text:
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'rspec'
require 'pry'
require 'conekta'

# Requires supporting files with custom matchers and macros, etc,
# in ./support/ and its subdirectories.
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}

RSpec.configure do |config|
  config.before(:all) { Conekta.api_key = '1tv5yJp3xnVZ7eK67m4h' }
end


text:
# Property Management Code Sample

> **IMPORTANT NOTE:** You must install the Web Application before the Android app will work.  During the Web application installation process all of the components and sample data which support the demo are provisioned.  See the [Install Web Application README](https://github.com/OfficeDev/Property-Inspection-Code-Sample/blob/master/PropertyManagerMyApp/README.md) for complete instructions.

Mobile Repair App Azure Active Directory Application Installation
=================================================================

The Android, Cordova, and Xamarin Repair Apps use Office 365 APIs and SharePoint REST APIs to interact with an Office 365 / Azure tenancy.  The Azure Active Directory Application is used to authorize the Android, Cordova, and Xamarin Repair Apps.  To register the Android, Cordova, and Xamarin Repair Apps with an Azure Active Directory see the [Mobile Repair App Azure Active Directory Application Installation README](https://github.com/OfficeDev/Property-Inspection-Code-Sample/blob/master/README-RepairAppAAD.md) for complete instructions.

Android Repair App
------------------

The mobile Repair App in the demo may also be run on Android in addition to the iOS version. The Android version of the Repair App is written in Java, the native language for an Android device.

Some configuration is required to enable the Android Repair App to work with an Office 365 environment.  Read on to learn about the configuration process.

> This sample was tested with  Android Studio version 2.1.

Android Repair App Installation
-------------------------------

Now you are ready to install the Android App.

In the AndroidRepairApp folder you will find runnable sample code for Android Repair App.

1. On a PC or Mac machine, clone the GitHub repository.

Configure Android Repair App settings
-------------------------------------

To configure the Android Repair App follow these instructions.

1. Open **Android Studio**.  If it a project is already open, then close that project.
2. In the Quick Start menu, select **Open an existing Android Studio project**.
3. Select the **AndroidRepairApp** directory you cloned from the GitHub repository.
4. Click **OK**.
5. Open the **\app\src\main\java\com.canviz.repairapp\Constants.java** file (See screenshot below for reference)

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/android%20constants%20file.png)

6. Edit the **SHAREPOINT_URL** variable to match your Office 365 / Azure Tenancy by **replacing the TENANCY placeholder** with your tenancy name.  In the example below, the TENANCY placeholder was replaced with contoso.

	**SHAREPOINT_URL** is the URL for the Site Collection created by the Property Manager web app.  Use the same value you configured in the web.config for the Property Manager web app for the DemoSiteCollectionUrl app setting.

    Example: contoso.onmicrosoft.com

7. Edit the **DISPATCHEREMAIL** variable to match your Office 365 / Azure Tenancy by **replacing the TENANCY placeholder** with your tenancy name.  In the example below, the TENANCY placeholder was replaced with contoso.

	**DISPATCHEREMAIL** is the email address for the dispatcher account you created.

    Example: katiej@contoso.onmicrosoft.com

8. Edit the **AAD_CLIENT_ID** variable.  This is the Client ID value you copied at step 12 in "Mobile Repair App Azure Active Directory Application Installation README".  This value is also displayed in the CONFIGURE page for the PropertyManagementRepairApp Azure Active Directory Application in the Azure Management Portal.

9. Edit the **AAD_REDIRECT_URL** variable.  This is the Redirect URI value you copied at step 12 in "Mobile Repair App Azure Active Directory Application Installation README".  This value is also displayed in the CONFIGURE page for the PropertyManagementRepairApp Azure Active Directory Application in the Azure Management Portal.

Items that you need a real Android device to run
------------------------------------------------

Some of the functionality in the app will not work in the Android emulator.  You must run the app on a real device to use the following functionality.

1. Uploading a video to the Office 365 Video Portal.
2. Opening Word, Excel, and PowerPoint documents in the native Android Office applications via Deep Links.

Set Up Android Virtual Device
-----------------------------

The Android Repair App targets the Nexus 9 device.  These steps describe how to configure an Android Virtual Device that replicates the Nexus 9.

1. In Android Studio, click the **Tools** menu, select **Android**, and click **AVD Manager** to open the Android Virtual Device Manager.
2. Use the Android Virtual Device Manager to create the Nexus 9 device.  **Click Create Virtual Device.**  Refer to the image below.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/Create%20AVD.png)

3. In the category list select **Tablet**, then select the **Nexus 9** device and click **Next**.  Refer to the image below.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/AVD%20Tablet%20Nexus%209.png)

4. Select **Lollipop 22 x86**. (Select Lollipop 22 armeabi-v7a if you can't install HAXM.  For example: If your Android Studio is installed on a virtual machine that does not support VT-x)  Click **Next**.  Refer to the image below.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/AVD%20System%20Image%20Lollipop.png)

5. Ensure the Orientation is set to **Landscape** and click **Finish**.  Refer to the image below.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/AVD%20Nexus%209%20Advanced%20Settings.png)

6. In the Android Virtual Device Manager, start the Nexus 9 Android Virtual Device.

	> **Note:** When the device is starting you can see if HAXM is enabled on your system and if the emulator is taking advantage of it.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/Select%20Nexus%209%20AVD%20-%202.png)

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/Starting%20Nexus%209%20AVD.png)

7. Wait for the device to boot, and unlock it.

	> **Note:** This can take a long time, up to 20 minutes if you have a slow computer or if you are using the ARM version of the device.

Install the OneNote native Android application
----------------------------------------------

The repair app uses deep links to automatically open the native Android OneNote application.  To enable this functionality in an emulator follow these steps.

> **Note:** You can only install the OneNote native Android application in an ARM emulator, it will not work with the Intel HAXM emulators.

> **Note:** We have had limited success with this approach. It works on some computers and not on others.  If this does not work for you then install the native Android OneNote app on a real Android device and run the repair app on the real Android device.

1. Copy the OneNote.apk file to the Android SDK platform-tools folder on your machine.
2. Open a command prompt as an administrator.
3. Change to the Android SDK platform-tools folder.
4. Execute the following command:

	`adb install OneNote.apk
	`
5. Wait for the installation to complete. The image below shows what a successful installation looks like in the command prompt.

	![](https://raw.githubusercontent.com/OfficeDev/Property-Inspection-Code-Sample/master/Documents/Install%20OneNote%20In%20Android%20Emulator.png)

	> **Note:** You must access OneDrive or OneNote in the web browser to provision the OneDrive and Notebook first.  If you do not do this then the OneNote client app will fail to load even outside the context of launching it from the repair app.

Run the Repair App on the Nexus 9 Android Virtual Device
--------------------------------------------------------

1. In Android Studio, click the **Run** menu and select **Run app**.
2. Select the **Nexus 9 Android Virtual Device** you already started.
3. Click **OK**.

The Sign in screen will appear and you can now use the Android Repair App during the demo.

**Android Repair App Installation Complete!**

## License
Copyright (c) Microsoft, Inc. All rights reserved. Licensed under the Apache License, Version 2.0.


text:
package io.flutter.plugins.quickactions;

import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.content.res.Resources;
import android.graphics.drawable.Icon;
import android.os.Build;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

class MethodCallHandlerImpl implements MethodChannel.MethodCallHandler {

  private static final String CHANNEL_ID = "plugins.flutter.io/quick_actions";
  private static final String EXTRA_ACTION = "some unique action key";

  private final Context context;
  private Activity activity;

  MethodCallHandlerImpl(Context context, Activity activity) {
    this.context = context;
    this.activity = activity;
  }

  void setActivity(Activity activity) {
    this.activity = activity;
  }

  @Override
  public void onMethodCall(MethodCall call, MethodChannel.Result result) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
      // We already know that this functionality does not work for anything
      // lower than API 25 so we chose not to return error. Instead we do nothing.
      result.success(null);
      return;
    }
    ShortcutManager shortcutManager =
        (ShortcutManager) context.getSystemService(Context.SHORTCUT_SERVICE);
    switch (call.method) {
      case "setShortcutItems":
        List<Map<String, String>> serializedShortcuts = call.arguments();
        List<ShortcutInfo> shortcuts = deserializeShortcuts(serializedShortcuts);
        shortcutManager.setDynamicShortcuts(shortcuts);
        break;
      case "clearShortcutItems":
        shortcutManager.removeAllDynamicShortcuts();
        break;
      case "getLaunchAction":
        if (activity == null) {
          result.error(
              "quick_action_getlaunchaction_no_activity",
              "There is no activity available when launching action",
              null);
          return;
        }
        final Intent intent = activity.getIntent();
        final String launchAction = intent.getStringExtra(EXTRA_ACTION);
        if (launchAction != null && !launchAction.isEmpty()) {
          shortcutManager.reportShortcutUsed(launchAction);
          intent.removeExtra(EXTRA_ACTION);
        }
        result.success(launchAction);
        return;
      default:
        result.notImplemented();
        return;
    }
    result.success(null);
  }

  @TargetApi(Build.VERSION_CODES.N_MR1)
  private List<ShortcutInfo> deserializeShortcuts(List<Map<String, String>> shortcuts) {
    final List<ShortcutInfo> shortcutInfos = new ArrayList<>();

    for (Map<String, String> shortcut : shortcuts) {
      final String icon = shortcut.get("icon");
      final String type = shortcut.get("type");
      final String title = shortcut.get("localizedTitle");
      final ShortcutInfo.Builder shortcutBuilder = new ShortcutInfo.Builder(context, type);

      final int resourceId = loadResourceId(context, icon);
      final Intent intent = getIntentToOpenMainActivity(type);

      if (resourceId > 0) {
        shortcutBuilder.setIcon(Icon.createWithResource(context, resourceId));
      }

      final ShortcutInfo shortcutInfo =
          shortcutBuilder.setLongLabel(title).setShortLabel(title).setIntent(intent).build();
      shortcutInfos.add(shortcutInfo);
    }
    return shortcutInfos;
  }

  private int loadResourceId(Context context, String icon) {
    if (icon == null) {
      return 0;
    }
    final String packageName = context.getPackageName();
    final Resources res = context.getResources();
    final int resourceId = res.getIdentifier(icon, "drawable", packageName);

    if (resourceId == 0) {
      return res.getIdentifier(icon, "mipmap", packageName);
    } else {
      return resourceId;
    }
  }

  private Intent getIntentToOpenMainActivity(String type) {
    final String packageName = context.getPackageName();

    return context
        .getPackageManager()
        .getLaunchIntentForPackage(packageName)
        .setAction(Intent.ACTION_RUN)
        .putExtra(EXTRA_ACTION, type)
        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
  }
}


text:
/*
	Crypti transactions API calls
 */

var private = {}, self = null,
library = null, modules = null;

/**
 * Creates instance of Transactions API. Use *modules.api.transactions* to get existing object.
 *
 * @param cb - Callback.
 * @param _library - Object that contains helpers.
 * @constructor
 */
function Transactions(cb, _library) {
	self = this;
	library = _library;
	cb(null, self);
}

/**
 * Get transactions by filter.
 * @param filter - Filter object.
 * @param filter.blockId - Id of block where transaction applied.
 * @param filter.type - Type of transaction.
 * @param filter.senderPublicKey - Sender public key of transaction.
 * @param filter.senderId - Address of transaction sender.
 * @param filter.recipientId - Address of transaction recipient.
 * @param filter.amount - Amount of transaction.
 * @param filter.limit - Limit of transactions.
 * @param filter.offset - Offset of transactions.
 * @param filter.orderBy - Field to sort transaction.
 * @param {Transactions~getTransactionsCallback} cb - Callback handles response from Crypti.
 */
Transactions.prototype.getTransactions = function (filter, cb) {
	var message = {
		call: "transactions#getTransactions",
		args: {
			blockId: filter.blockId,
			limit: filter.limit,
			type: filter.type,
			orderBy: filter.orderBy,
			offset: filter.offset,
			senderPublicKey: filter.senderPublicKey,
			senderId: filter.senderId,
			recipientId: filter.recipientId,
			senderUsername: filter.senderUsername,
			recipientUsername: filter.recipientUsername
		}
	};

	library.sandbox.sendMessage(message, cb);
}

/**
 * @callback Transactions~getTransactionsCallback
 *
 * @param error - Error of api call execution.
 * @param response - Response of api call execution.
 * @param response.count - Total count of transactions that found by filter.
 * @param response.transactions - Array of transactions.
 */

/**
 * Get transaction.
 * @param id - Id of transaction.
 * @param {Transactions~getTransaction} cb - Callback handles response from Crypti.
 */
Transactions.prototype.getTransaction = function (id, cb) {
	var message = {
		call: "transactions#getTransaction",
		args: {
			id: id
		}
	};

	library.sandbox.sendMessage(message, cb);
}

/**
 * @callback Transactions~getTransaction
 * @param error - Error of api call execution.
 * @param response - Response of api call execution.
 * @param response.transaction - Transaction object.
 */

/**
 * Get unconfirmed transaction.
 * @param id - Id of unconfirmed transaction.
 * @param {Transactions~getUnconfirmedTransaction} cb - Callback handles response from Crypti.
 */
Transactions.prototype.getUnconfirmedTransaction = function (id, cb) {
	var message = {
		call: "transactions#getUnconfirmedTransaction",
		args: {
			id: id
		}
	};

	library.sandbox.sendMessage(message, cb);
}

/**
 * @callback Transactions~getUnconfirmedTransaction
 *
 * @param error - Error of api call execution.
 * @param response - Response of api call execution.
 * @param response.transaction - Transaction object.
 */

/**
 * Get list of unconfirmed transactions.
 * @param {Transactions~getUnconfirmedTransactions} cb - Callback handles response from Crypti.
 */
Transactions.prototype.getUnconfirmedTransactions = function (cb) {
	var message = {
		call: "transactions#getUnconfirmedTransactions",
		args: {
		}
	};

	library.sandbox.sendMessage(message, cb);
}

/**
 * @callback Transactions~getUnconfirmedTransactions
 * @param error - Error of api call execution.
 * @param response - Response of api call execution.
 * @param response.transactions - Array of unconfirmed transactions.
 */

/**
 * Send transaction.
 * @param secret - Secret of sender.
 * @param amount - Amount of transaction.
 * @param recipientId - Address of recipient.
 * @param publicKey - Public key of sender (optional).
 * @param secondSecret - Second secret if second signature enabled (optional).
 * @param requesterPublicKey - Public key of account if account under multisignature (optional).
 * @param {Transactions~addTransactionsCallback} cb - Callback handles response from Crypti.
 */
Transactions.prototype.addTransactions = function (secret, amount, recipientId, publicKey, secondSecret, requesterPublicKey) {
	var message = {
		call: "transactions#addTransactions",
		args: {
			secret: secret,
			amount: amount,
			recipientId: recipientId,
			publicKey: publicKey,
			secondSecret: secondSecret,
			requesterPublicKey: requesterPublicKey
		}
	};

	library.sandbox.sendMessage(message, cb);
}

/**
 * @callback Transactions~addTransactionsCallback
 * @param error - Error of api call execution.
 * @param response - Response of api call execution.
 * @param response.transactionId - Id of sent transaction.
 */

Transactions.prototype.onBind = function (_modules) {
	modules = _modules;
}

module.exports = Transactions;


text:
#import <UIKit/UIKit.h>

@interface UINavigationController (USH)

@end


text:
.class public abstract Landroid/media/videoeditor/Transition;
.super Ljava/lang/Object;
.source "Transition.java"

# static fields
.field public static final BEHAVIOR_LINEAR:I = 0x2

.field private static final BEHAVIOR_MAX_VALUE:I = 0x4

.field public static final BEHAVIOR_MIDDLE_FAST:I = 0x4

.field public static final BEHAVIOR_MIDDLE_SLOW:I = 0x3

.field private static final BEHAVIOR_MIN_VALUE:I = 0x0

.field public static final BEHAVIOR_SPEED_DOWN:I = 0x1

.field public static final BEHAVIOR_SPEED_UP:I

# instance fields
.field private final mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

.field private final mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

.field protected final mBehavior:I

.field protected mDurationMs:J

.field protected mFilename:Ljava/lang/String;

.field protected mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

.field private final mUniqueId:Ljava/lang/String;

# direct methods
.method private constructor <init>()V
    .locals 7

    .prologue
    const/4 v1, 0x0

    .line 102
    const-wide/16 v4, 0x0

    const/4 v6, 0x0

    move-object v0, p0

    move-object v2, v1

    move-object v3, v1

    invoke-direct/range {v0 .. v6}, Landroid/media/videoeditor/Transition;-><init>(Ljava/lang/String;Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaItem;JI)V

    .line 103
    return-void
.end method

.method protected constructor <init>(Ljava/lang/String;Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaItem;JI)V
    .locals 3
    .parameter "transitionId"
    .parameter "afterMediaItem"
    .parameter "beforeMediaItem"
    .parameter "durationMs"
    .parameter "behavior"

    .prologue
    .line 118
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 119
    if-ltz p6, :cond_0

    const/4 v0, 0x4

    if-le p6, v0, :cond_1

    .line 120
    :cond_0
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Invalid behavior: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 122
    :cond_1
    if-nez p2, :cond_2

    if-nez p3, :cond_2

    .line 123
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "Null media items"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 125
    :cond_2
    iput-object p1, p0, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    .line 126
    iput-object p2, p0, Landroid/media/videoeditor/Transition;->mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

    .line 127
    iput-object p3, p0, Landroid/media/videoeditor/Transition;->mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

    .line 128
    iput-wide p4, p0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    .line 129
    iput p6, p0, Landroid/media/videoeditor/Transition;->mBehavior:I

    .line 130
    const/4 v0, 0x0

    iput-object v0, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    .line 131
    invoke-virtual {p0}, Landroid/media/videoeditor/Transition;->getMaximumDuration()J

    move-result-wide v0

    cmp-long v0, p4, v0

    if-lez v0, :cond_3

    .line 132
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "The duration is too large"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 134
    :cond_3
    if-eqz p2, :cond_4

    .line 135
    invoke-virtual {p2}, Landroid/media/videoeditor/MediaItem;->getNativeContext()Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-result-object v0

    iput-object v0, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    .line 139
    :goto_0
    return-void

    .line 137
    :cond_4
    invoke-virtual {p3}, Landroid/media/videoeditor/MediaItem;->getNativeContext()Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-result-object v0

    iput-object v0, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    goto :goto_0
.end method

# virtual methods
.method public equals(Ljava/lang/Object;)Z
    .locals 2
    .parameter "object"

    .prologue
    .line 476
    instance-of v0, p1, Landroid/media/videoeditor/Transition;

    if-nez v0, :cond_0

    .line 477
    const/4 v0, 0x0

    .line 479
    .end local p1
    :goto_0
    return v0

    .restart local p1
    :cond_0
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    check-cast p1, Landroid/media/videoeditor/Transition;

    .end local p1
    iget-object v1, p1, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    goto :goto_0
.end method

.method generate()V
    .locals 21

    .prologue
    .line 333
    invoke-virtual/range {p0 .. p0}, Landroid/media/videoeditor/Transition;->getAfterMediaItem()Landroid/media/videoeditor/MediaItem;

    move-result-object v5

    .line 334
    .local v5, m1:Landroid/media/videoeditor/MediaItem;
    invoke-virtual/range {p0 .. p0}, Landroid/media/videoeditor/Transition;->getBeforeMediaItem()Landroid/media/videoeditor/MediaItem;

    move-result-object v6

    .line 335
    .local v6, m2:Landroid/media/videoeditor/MediaItem;
    new-instance v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    invoke-direct {v8}, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;-><init>()V

    .line 336
    .local v8, clipSettings1:Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;
    new-instance v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    invoke-direct {v9}, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;-><init>()V

    .line 337
    .local v9, clipSettings2:Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;
    const/16 v16, 0x0

    .line 338
    .local v16, transitionSetting:Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;
    new-instance v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;

    invoke-direct {v3}, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;-><init>()V

    .line 342
    .local v3, editSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;
    const/4 v15, 0x0

    .line 344
    .local v15, output:Ljava/lang/String;
    move-object/from16 v0, p0

    iget-object v2, v0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    if-nez v2, :cond_0

    .line 345
    if-eqz v5, :cond_1

    .line 346
    invoke-virtual {v5}, Landroid/media/videoeditor/MediaItem;->getNativeContext()Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-result-object v2

    move-object/from16 v0, p0

    iput-object v2, v0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    .line 350
    :cond_0
    :goto_0
    invoke-virtual/range {p0 .. p0}, Landroid/media/videoeditor/Transition;->getTransitionSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;

    move-result-object v16

    .line 351
    if-eqz v5, :cond_4

    if-eqz v6, :cond_4

    .line 353
    invoke-virtual {v5}, Landroid/media/videoeditor/MediaItem;->getClipSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    move-result-object v8

    .line 354
    invoke-virtual {v6}, Landroid/media/videoeditor/MediaItem;->getClipSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    move-result-object v9

    .line 355
    iget v2, v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    int-to-long v0, v2

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    sub-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    .line 357
    iget v2, v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    int-to-long v0, v2

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    .line 363
    const/4 v2, 0x1

    move-object/from16 v0, p0

    invoke-virtual {v0, v5, v8, v2}, Landroid/media/videoeditor/Transition;->isEffectandOverlayOverlapping(Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;I)Ljava/util/List;

    move-result-object v10

    .line 364
    .local v10, effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    const/4 v2, 0x2

    move-object/from16 v0, p0

    invoke-virtual {v0, v6, v9, v2}, Landroid/media/videoeditor/Transition;->isEffectandOverlayOverlapping(Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;I)Ljava/util/List;

    move-result-object v11

    .line 365
    .local v11, effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    const/4 v13, 0x0

    .local v13, index:I
    :goto_1
    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v2

    if-ge v13, v2, :cond_2

    .line 366
    invoke-interface {v11, v13}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    iget v4, v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->startTime:I

    int-to-long v0, v4

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v4, v0

    iput v4, v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->startTime:I

    .line 365
    add-int/lit8 v13, v13, 0x1

    goto :goto_1

    .line 347
    .end local v10           #effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v11           #effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v13           #index:I
    :cond_1
    if-eqz v6, :cond_0

    .line 348
    invoke-virtual {v6}, Landroid/media/videoeditor/MediaItem;->getNativeContext()Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-result-object v2

    move-object/from16 v0, p0

    iput-object v2, v0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    goto :goto_0

    .line 368
    .restart local v10       #effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .restart local v11       #effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .restart local v13       #index:I
    :cond_2
    invoke-interface {v10}, Ljava/util/List;->size()I

    move-result v2

    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v4

    add-int/2addr v2, v4

    new-array v2, v2, [Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    .line 371
    const/4 v12, 0x0

    .local v12, i:I
    const/4 v14, 0x0

    .line 372
    .local v14, j:I
    :goto_2
    invoke-interface {v10}, Ljava/util/List;->size()I

    move-result v2

    if-ge v12, v2, :cond_3

    .line 373
    iget-object v4, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    invoke-interface {v10, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    aput-object v2, v4, v14

    .line 374
    add-int/lit8 v12, v12, 0x1

    .line 375
    add-int/lit8 v14, v14, 0x1

    goto :goto_2

    .line 377
    :cond_3
    const/4 v12, 0x0

    .line 378
    :goto_3
    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v2

    if-ge v12, v2, :cond_7

    .line 379
    iget-object v4, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    invoke-interface {v11, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    aput-object v2, v4, v14

    .line 380
    add-int/lit8 v12, v12, 0x1

    .line 381
    add-int/lit8 v14, v14, 0x1

    goto :goto_3

    .line 383
    .end local v10           #effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v11           #effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v12           #i:I
    .end local v13           #index:I
    .end local v14           #j:I
    :cond_4
    if-nez v5, :cond_6

    if-eqz v6, :cond_6

    .line 385
    invoke-virtual {v6, v8}, Landroid/media/videoeditor/MediaItem;->generateBlankFrame(Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;)V

    .line 386
    invoke-virtual {v6}, Landroid/media/videoeditor/MediaItem;->getClipSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    move-result-object v9

    .line 387
    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v17, v0

    const-wide/16 v19, 0x32

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    .line 388
    iget v2, v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    int-to-long v0, v2

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    .line 394
    const/4 v2, 0x2

    move-object/from16 v0, p0

    invoke-virtual {v0, v6, v9, v2}, Landroid/media/videoeditor/Transition;->isEffectandOverlayOverlapping(Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;I)Ljava/util/List;

    move-result-object v11

    .line 395
    .restart local v11       #effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    const/4 v13, 0x0

    .restart local v13       #index:I
    :goto_4
    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v2

    if-ge v13, v2, :cond_5

    .line 396
    invoke-interface {v11, v13}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    iget v4, v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->startTime:I

    int-to-long v0, v4

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v4, v0

    iput v4, v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->startTime:I

    .line 395
    add-int/lit8 v13, v13, 0x1

    goto :goto_4

    .line 398
    :cond_5
    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v2

    new-array v2, v2, [Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    .line 399
    const/4 v12, 0x0

    .restart local v12       #i:I
    const/4 v14, 0x0

    .line 400
    .restart local v14       #j:I
    :goto_5
    invoke-interface {v11}, Ljava/util/List;->size()I

    move-result v2

    if-ge v12, v2, :cond_7

    .line 401
    iget-object v4, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    invoke-interface {v11, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    aput-object v2, v4, v14

    .line 402
    add-int/lit8 v12, v12, 0x1

    .line 403
    add-int/lit8 v14, v14, 0x1

    goto :goto_5

    .line 405
    .end local v11           #effectSettings_clip2:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v12           #i:I
    .end local v13           #index:I
    .end local v14           #j:I
    :cond_6
    if-eqz v5, :cond_7

    if-nez v6, :cond_7

    .line 407
    invoke-virtual {v5}, Landroid/media/videoeditor/MediaItem;->getClipSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    move-result-object v8

    .line 408
    invoke-virtual {v5, v9}, Landroid/media/videoeditor/MediaItem;->generateBlankFrame(Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;)V

    .line 409
    iget v2, v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    int-to-long v0, v2

    move-wide/from16 v17, v0

    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v19, v0

    sub-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v8, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    .line 411
    move-object/from16 v0, p0

    iget-wide v0, v0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    move-wide/from16 v17, v0

    const-wide/16 v19, 0x32

    add-long v17, v17, v19

    move-wide/from16 v0, v17

    long-to-int v2, v0

    iput v2, v9, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    .line 416
    const/4 v2, 0x1

    move-object/from16 v0, p0

    invoke-virtual {v0, v5, v8, v2}, Landroid/media/videoeditor/Transition;->isEffectandOverlayOverlapping(Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;I)Ljava/util/List;

    move-result-object v10

    .line 417
    .restart local v10       #effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    invoke-interface {v10}, Ljava/util/List;->size()I

    move-result v2

    new-array v2, v2, [Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    .line 418
    const/4 v12, 0x0

    .restart local v12       #i:I
    const/4 v14, 0x0

    .line 419
    .restart local v14       #j:I
    :goto_6
    invoke-interface {v10}, Ljava/util/List;->size()I

    move-result v2

    if-ge v12, v2, :cond_7

    .line 420
    iget-object v4, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->effectSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    invoke-interface {v10, v12}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    aput-object v2, v4, v14

    .line 421
    add-int/lit8 v12, v12, 0x1

    .line 422
    add-int/lit8 v14, v14, 0x1

    goto :goto_6

    .line 426
    .end local v10           #effectSettings_clip1:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    .end local v12           #i:I
    .end local v14           #j:I
    :cond_7
    const/4 v2, 0x2

    new-array v2, v2, [Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->clipSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    .line 427
    iget-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->clipSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    const/4 v4, 0x0

    aput-object v8, v2, v4

    .line 428
    iget-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->clipSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;

    const/4 v4, 0x1

    aput-object v9, v2, v4

    .line 429
    const/4 v2, 0x0

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->backgroundMusicSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$BackgroundMusicSettings;

    .line 430
    const/4 v2, 0x1

    new-array v2, v2, [Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;

    iput-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->transitionSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;

    .line 431
    iget-object v2, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;->transitionSettingsArray:[Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;

    const/4 v4, 0x0

    aput-object v16, v2, v4

    .line 432
    move-object/from16 v0, p0

    iget-object v2, v0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-object/from16 v0, p0

    iget-object v4, v0, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    move-object/from16 v7, p0

    invoke-virtual/range {v2 .. v7}, Landroid/media/videoeditor/MediaArtistNativeHelper;->generateTransitionClip(Landroid/media/videoeditor/MediaArtistNativeHelper$EditSettings;Ljava/lang/String;Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/Transition;)Ljava/lang/String;

    move-result-object v15

    .line 434
    move-object/from16 v0, p0

    invoke-virtual {v0, v15}, Landroid/media/videoeditor/Transition;->setFilename(Ljava/lang/String;)V

    .line 435
    return-void
.end method

.method public getAfterMediaItem()Landroid/media/videoeditor/MediaItem;
    .locals 1

    .prologue
    .line 156
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

    return-object v0
.end method

.method public getBeforeMediaItem()Landroid/media/videoeditor/MediaItem;
    .locals 1

    .prologue
    .line 166
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

    return-object v0
.end method

.method public getBehavior()I
    .locals 1

    .prologue
    .line 216
    iget v0, p0, Landroid/media/videoeditor/Transition;->mBehavior:I

    return v0
.end method

.method public getDuration()J
    .locals 2

    .prologue
    .line 190
    iget-wide v0, p0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    return-wide v0
.end method

.method getFilename()Ljava/lang/String;
    .locals 1

    .prologue
    .line 449
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    return-object v0
.end method

.method public getId()Ljava/lang/String;
    .locals 1

    .prologue
    .line 147
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    return-object v0
.end method

.method public getMaximumDuration()J
    .locals 6

    .prologue
    const-wide/16 v4, 0x2

    .line 200
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

    if-nez v0, :cond_0

    .line 201
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

    invoke-virtual {v0}, Landroid/media/videoeditor/MediaItem;->getTimelineDuration()J

    move-result-wide v0

    div-long/2addr v0, v4

    .line 205
    :goto_0
    return-wide v0

    .line 202
    :cond_0
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

    if-nez v0, :cond_1

    .line 203
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

    invoke-virtual {v0}, Landroid/media/videoeditor/MediaItem;->getTimelineDuration()J

    move-result-wide v0

    div-long/2addr v0, v4

    goto :goto_0

    .line 205
    :cond_1
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mAfterMediaItem:Landroid/media/videoeditor/MediaItem;

    invoke-virtual {v0}, Landroid/media/videoeditor/MediaItem;->getTimelineDuration()J

    move-result-wide v0

    iget-object v2, p0, Landroid/media/videoeditor/Transition;->mBeforeMediaItem:Landroid/media/videoeditor/MediaItem;

    invoke-virtual {v2}, Landroid/media/videoeditor/MediaItem;->getTimelineDuration()J

    move-result-wide v2

    invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->min(JJ)J

    move-result-wide v0

    div-long/2addr v0, v4

    goto :goto_0
.end method

.method getTransitionSettings()Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;
    .locals 9

    .prologue
    const/4 v8, 0x1

    const/4 v7, 0x0

    .line 226
    const/4 v0, 0x0

    .line 227
    .local v0, transitionAlpha:Landroid/media/videoeditor/TransitionAlpha;
    const/4 v4, 0x0

    .line 228
    .local v4, transitionSliding:Landroid/media/videoeditor/TransitionSliding;
    const/4 v1, 0x0

    .line 229
    .local v1, transitionCrossfade:Landroid/media/videoeditor/TransitionCrossfade;
    const/4 v2, 0x0

    .line 230
    .local v2, transitionFadeBlack:Landroid/media/videoeditor/TransitionFadeBlack;
    const/4 v3, 0x0

    .line 231
    .local v3, transitionSetting:Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;
    new-instance v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;

    .end local v3           #transitionSetting:Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;
    invoke-direct {v3}, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;-><init>()V

    .line 232
    .restart local v3       #transitionSetting:Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;
    invoke-virtual {p0}, Landroid/media/videoeditor/Transition;->getDuration()J

    move-result-wide v5

    long-to-int v5, v5

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->duration:I

    .line 233
    instance-of v5, p0, Landroid/media/videoeditor/TransitionAlpha;

    if-eqz v5, :cond_1

    move-object v0, p0

    .line 234
    check-cast v0, Landroid/media/videoeditor/TransitionAlpha;

    .line 235
    const/16 v5, 0x101

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->videoTransitionType:I

    .line 236
    iput v8, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->audioTransitionType:I

    .line 237
    iget-object v5, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->getBehavior()I

    move-result v6

    invoke-virtual {v5, v6}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getVideoTransitionBehaviour(I)I

    move-result v5

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->transitionBehaviour:I

    .line 239
    new-instance v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-direct {v5}, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;-><init>()V

    iput-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    .line 240
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->slideSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    .line 241
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->getPNGMaskFilename()Ljava/lang/String;

    move-result-object v6

    iput-object v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;->file:Ljava/lang/String;

    .line 242
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->getBlendingPercent()I

    move-result v6

    iput v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;->blendingPercent:I

    .line 243
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->isInvert()Z

    move-result v6

    iput-boolean v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;->invertRotation:Z

    .line 244
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->getRGBFileWidth()I

    move-result v6

    iput v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;->rgbWidth:I

    .line 245
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    invoke-virtual {v0}, Landroid/media/videoeditor/TransitionAlpha;->getRGBFileHeight()I

    move-result v6

    iput v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;->rgbHeight:I

    .line 275
    :cond_0
    :goto_0
    return-object v3

    .line 247
    :cond_1
    instance-of v5, p0, Landroid/media/videoeditor/TransitionSliding;

    if-eqz v5, :cond_2

    move-object v4, p0

    .line 248
    check-cast v4, Landroid/media/videoeditor/TransitionSliding;

    .line 249
    const/16 v5, 0x102

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->videoTransitionType:I

    .line 250
    iput v8, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->audioTransitionType:I

    .line 251
    iget-object v5, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    invoke-virtual {v4}, Landroid/media/videoeditor/TransitionSliding;->getBehavior()I

    move-result v6

    invoke-virtual {v5, v6}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getVideoTransitionBehaviour(I)I

    move-result v5

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->transitionBehaviour:I

    .line 253
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    .line 254
    new-instance v5, Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    invoke-direct {v5}, Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;-><init>()V

    iput-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->slideSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    .line 255
    iget-object v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->slideSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    iget-object v6, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    invoke-virtual {v4}, Landroid/media/videoeditor/TransitionSliding;->getDirection()I

    move-result v7

    invoke-virtual {v6, v7}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getSlideSettingsDirection(I)I

    move-result v6

    iput v6, v5, Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;->direction:I

    goto :goto_0

    .line 257
    :cond_2
    instance-of v5, p0, Landroid/media/videoeditor/TransitionCrossfade;

    if-eqz v5, :cond_3

    move-object v1, p0

    .line 258
    check-cast v1, Landroid/media/videoeditor/TransitionCrossfade;

    .line 259
    iput v8, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->videoTransitionType:I

    .line 260
    iput v8, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->audioTransitionType:I

    .line 261
    iget-object v5, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    invoke-virtual {v1}, Landroid/media/videoeditor/TransitionCrossfade;->getBehavior()I

    move-result v6

    invoke-virtual {v5, v6}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getVideoTransitionBehaviour(I)I

    move-result v5

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->transitionBehaviour:I

    .line 263
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    .line 264
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->slideSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    goto :goto_0

    .line 265
    :cond_3
    instance-of v5, p0, Landroid/media/videoeditor/TransitionFadeBlack;

    if-eqz v5, :cond_0

    move-object v2, p0

    .line 266
    check-cast v2, Landroid/media/videoeditor/TransitionFadeBlack;

    .line 267
    const/16 v5, 0x103

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->videoTransitionType:I

    .line 268
    iput v8, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->audioTransitionType:I

    .line 269
    iget-object v5, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    invoke-virtual {v2}, Landroid/media/videoeditor/TransitionFadeBlack;->getBehavior()I

    move-result v6

    invoke-virtual {v5, v6}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getVideoTransitionBehaviour(I)I

    move-result v5

    iput v5, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->transitionBehaviour:I

    .line 271
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->alphaSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$AlphaMagicSettings;

    .line 272
    iput-object v7, v3, Landroid/media/videoeditor/MediaArtistNativeHelper$TransitionSettings;->slideSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$SlideTransitionSettings;

    goto :goto_0
.end method

.method public hashCode()I
    .locals 1

    .prologue
    .line 487
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mUniqueId:Ljava/lang/String;

    invoke-virtual {v0}, Ljava/lang/String;->hashCode()I

    move-result v0

    return v0
.end method

.method invalidate()V
    .locals 2

    .prologue
    .line 456
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    if-eqz v0, :cond_0

    .line 457
    new-instance v0, Ljava/io/File;

    iget-object v1, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0}, Ljava/io/File;->delete()Z

    .line 458
    const/4 v0, 0x0

    iput-object v0, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    .line 460
    :cond_0
    return-void
.end method

.method isEffectandOverlayOverlapping(Landroid/media/videoeditor/MediaItem;Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;I)Ljava/util/List;
    .locals 10
    .parameter "m"
    .parameter "clipSettings"
    .parameter "clipNo"
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Landroid/media/videoeditor/MediaItem;",
            "Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;",
            "I)",
            "Ljava/util/List",
            "<",
            "Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;",
            ">;"
        }
    .end annotation

    .prologue
    .line 294
    new-instance v1, Ljava/util/ArrayList;

    invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V

    .line 297
    .local v1, effectSettings:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;>;"
    invoke-virtual {p1}, Landroid/media/videoeditor/MediaItem;->getAllOverlays()Ljava/util/List;

    move-result-object v5

    .line 298
    .local v5, overlays:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/Overlay;>;"
    invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v3

    .local v3, i$:Ljava/util/Iterator;
    :cond_0
    :goto_0
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v7

    if-eqz v7, :cond_1

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Landroid/media/videoeditor/Overlay;

    .line 299
    .local v4, overlay:Landroid/media/videoeditor/Overlay;
    iget-object v7, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    check-cast v4, Landroid/media/videoeditor/OverlayFrame;

    .end local v4           #overlay:Landroid/media/videoeditor/Overlay;
    invoke-virtual {v7, v4}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getOverlaySettings(Landroid/media/videoeditor/OverlayFrame;)Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    move-result-object v6

    .line 300
    .local v6, tmpEffectSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;
    iget-object v7, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    iget v8, p2, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    iget v9, p2, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    invoke-virtual {v7, v6, v8, v9}, Landroid/media/videoeditor/MediaArtistNativeHelper;->adjustEffectsStartTimeAndDuration(Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;II)V

    .line 302
    iget v7, v6, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->duration:I

    if-eqz v7, :cond_0

    .line 303
    invoke-interface {v1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_0

    .line 307
    .end local v6           #tmpEffectSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;
    :cond_1
    invoke-virtual {p1}, Landroid/media/videoeditor/MediaItem;->getAllEffects()Ljava/util/List;

    move-result-object v2

    .line 308
    .local v2, effects:Ljava/util/List;,"Ljava/util/List<Landroid/media/videoeditor/Effect;>;"
    invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :cond_2
    :goto_1
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v7

    if-eqz v7, :cond_4

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/media/videoeditor/Effect;

    .line 309
    .local v0, effect:Landroid/media/videoeditor/Effect;
    instance-of v7, v0, Landroid/media/videoeditor/EffectColor;

    if-eqz v7, :cond_2

    .line 310
    iget-object v7, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    check-cast v0, Landroid/media/videoeditor/EffectColor;

    .end local v0           #effect:Landroid/media/videoeditor/Effect;
    invoke-virtual {v7, v0}, Landroid/media/videoeditor/MediaArtistNativeHelper;->getEffectSettings(Landroid/media/videoeditor/EffectColor;)Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;

    move-result-object v6

    .line 311
    .restart local v6       #tmpEffectSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;
    iget-object v7, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    iget v8, p2, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->beginCutTime:I

    iget v9, p2, Landroid/media/videoeditor/MediaArtistNativeHelper$ClipSettings;->endCutTime:I

    invoke-virtual {v7, v6, v8, v9}, Landroid/media/videoeditor/MediaArtistNativeHelper;->adjustEffectsStartTimeAndDuration(Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;II)V

    .line 313
    iget v7, v6, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->duration:I

    if-eqz v7, :cond_2

    .line 314
    instance-of v7, p1, Landroid/media/videoeditor/MediaVideoItem;

    if-eqz v7, :cond_3

    .line 315
    iget-object v8, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    move-object v7, p1

    check-cast v7, Landroid/media/videoeditor/MediaVideoItem;

    invoke-virtual {v7}, Landroid/media/videoeditor/MediaVideoItem;->getFps()I

    move-result v7

    invoke-virtual {v8, v7}, Landroid/media/videoeditor/MediaArtistNativeHelper;->GetClosestVideoFrameRate(I)I

    move-result v7

    iput v7, v6, Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;->fiftiesFrameRate:I

    .line 318
    :cond_3
    invoke-interface {v1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_1

    .line 323
    .end local v6           #tmpEffectSettings:Landroid/media/videoeditor/MediaArtistNativeHelper$EffectSettings;
    :cond_4
    return-object v1
.end method

.method isGenerated()Z
    .locals 1

    .prologue
    .line 468
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    if-eqz v0, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public setDuration(J)V
    .locals 2
    .parameter "durationMs"

    .prologue
    .line 175
    invoke-virtual {p0}, Landroid/media/videoeditor/Transition;->getMaximumDuration()J

    move-result-wide v0

    cmp-long v0, p1, v0

    if-lez v0, :cond_0

    .line 176
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "The duration is too large"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 179
    :cond_0
    iput-wide p1, p0, Landroid/media/videoeditor/Transition;->mDurationMs:J

    .line 180
    invoke-virtual {p0}, Landroid/media/videoeditor/Transition;->invalidate()V

    .line 181
    iget-object v0, p0, Landroid/media/videoeditor/Transition;->mNativeHelper:Landroid/media/videoeditor/MediaArtistNativeHelper;

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/media/videoeditor/MediaArtistNativeHelper;->setGeneratePreview(Z)V

    .line 182
    return-void
.end method

.method setFilename(Ljava/lang/String;)V
    .locals 0
    .parameter "filename"

    .prologue
    .line 442
    iput-object p1, p0, Landroid/media/videoeditor/Transition;->mFilename:Ljava/lang/String;

    .line 443
    return-void
.end method